Rabbitmq 入门工程

本文介绍了如何使用Spring Boot与RabbitMQ进行集成,创建了producer提供方,引入了必要的依赖如spring-boot-starter-amqp,并配置了RabbitmqConfig,定义了消息队列和交换机。同时,搭建了消息接收方consumer,通过@RabbitListener注解监听邮件和短信队列,实现消息的接收与处理。

rabbitmq producer 提供方


org.springframework.boot
spring-boot-starter-web


org.springframework.boot
spring-boot-starter-amqp


org.springframework.boot
spring-boot-starter-test


org.springframework.boot
spring-boot-starter-logging


com.alibaba
fastjson


创建RabbitmqConfig
@Configuration
public class RabbitmqConfig {
public static final String QUEUE_INFORM_EMAIL = “queue_inform_email”;
public static final String QUEUE_INFORM_SMS = “queue_inform_sms”;
public static final String EXCHANGE_TOPICS_INFORM=“exchange_topics_inform”;
public static final String ROUTINGKEY_EMAIL=“inform.#.email.#”;
public static final String ROUTINGKEY_SMS=“inform.#.sms.#”;

//声明交换机
@Bean(EXCHANGE_TOPICS_INFORM)
public Exchange EXCHANGE_TOPICS_INFORM(){
    //durable(true) 持久化,mq重启之后交换机还在
    return ExchangeBuilder.topicExchange(EXCHANGE_TOPICS_INFORM).durable(true).build();
}

//声明QUEUE_INFORM_EMAIL队列
@Bean(QUEUE_INFORM_EMAIL)
public Queue QUEUE_INFORM_EMAIL(){
    return new Queue(QUEUE_INFORM_EMAIL);
}
//声明QUEUE_INFORM_SMS队列
@Bean(QUEUE_INFORM_SMS)
public Queue QUEUE_INFORM_SMS(){
    return new Queue(QUEUE_INFORM_SMS);
}

//ROUTINGKEY_EMAIL队列绑定交换机,指定routingKey
@Bean
public Binding BINDING_QUEUE_INFORM_EMAIL(@Qualifier(QUEUE_INFORM_EMAIL) Queue queue,
                                          @Qualifier(EXCHANGE_TOPICS_INFORM) Exchange exchange){
    return BindingBuilder.bind(queue).to(exchange).with(ROUTINGKEY_EMAIL).noargs();
}
//ROUTINGKEY_SMS队列绑定交换机,指定routingKey
@Bean
public Binding BINDING_ROUTINGKEY_SMS(@Qualifier(QUEUE_INFORM_SMS) Queue queue,
                                          @Qualifier(EXCHANGE_TOPICS_INFORM) Exchange exchange){
    return BindingBuilder.bind(queue).to(exchange).with(ROUTINGKEY_SMS).noargs();
}

}

创建测试类

@SpringBootTest
@RunWith(SpringRunner.class)
public class RabbitmqConfigTest {

@Autowired
private RabbitTemplate rabbitTemplate;

String masseg = "send   to   email ,this";
/***
 * 交换机名
 * 路由
 * 内容
 */
@Test
public void testSendTopic() {
    rabbitTemplate.convertAndSend(RabbitmqConfig.EXCHANGE_TOPICS_INFORM, "inform.email", masseg);
}

}

在这里插入图片描述

2 消息接收方

test-rabbitmq-consumer

@Component
public class ReceiveHandler {
//接收邮件
@RabbitListener(queues = {RabbitmqConfig.QUEUE_INFORM_EMAIL})
public void send_email(String msg,Message message,Channel channel){
System.out.println(“receive message is:”+msg);
}
//接收短信
@RabbitListener(queues = {RabbitmqConfig.QUEUE_INFORM_SMS})
public void send_sms(String msg,Message message,Channel channel){
System.out.println(“receive message is:”+msg);
}
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值