文章目录
- 0. Springboot整合
- 1. 生产者整合例子
- 2. 生产者整合总结
- 3. 消费者整合例子
- 4. 消费者整合总结
- 其他文章
- RabbitMQ(一)-----MQ基础知识点
- RabbitMQ(二)-----rabbitMq基础知识与工作模式(代码演示)
- RabbitMQ(三)-----非常详细Springboot整合步骤
- RabbitMQ(四)-----高级应用(消息可靠性投递,消费端限流,TTL,死信队列,延迟队列)
- RabbitMQ(五)-----集群搭建
0. Springboot整合
1. 生产者整合例子
- 首先创建两个springboot项目,分别为rabbitmq_producer(生产者) ,rabiitmq_consumer(消费者)
下面是以生产者为例子,消费者同理。 - 最终如下图
- 打开producer生产者模块,创建并编写application.yml文件。
spring:
rabbitmq:
host: 127.0.0.1 # 地址
port: 5672 # 端口
username: jin # 用户名
password: jin # 密码
virtual-host: /jin # 虚拟主机
- 创建config配置类,配置exchange、queue、绑定信息。下面以Topic模式来说明。
@Component
public class RabbitMQConfig {
@Bean
public Queue TopicQueue(){
// 创建队列
return QueueBuilder.durable("Topic-Queue").build();
}
@Bean
public Exchange TopicExchange(){
// 创建交换机
return ExchangeBuilder.topicExchange("Topic-Exchange").build();
}
@Bean
public Binding TopicBinding(@Qualifier("TopicQueue") Queue queue,@Qualifier("TopicExchange") Exchange exchange){
// 交换机与队列进行绑定
// 1. 为什么要使用@Qualifier 因为整个配置类,后面会有一堆交换机或者队列,注入需要区分,同类型则使用名字区分
return BindingBuilder.bind(queue).to(exchange).with("Topic.*").noargs();
}
}
- 进行测试,并登录管理页面查看。
@SpringBootTest
class RabbitmqProducerApplicationTests {
// 注入模板
@Autowired
RabbitTemplate rabbitTemplate;
@Test
public void TopicTest(){
// 参数:
// 1. 交换机名字
// 2. route-key 路由键
// 3. 消息
rabbitTemplate.convertAndSend("Topic-Exchange","Topic.add","springboot整合第一次");
}
}
2. 生产者整合总结
- 导入rabbitMQ的start,我们在创建项目的时候,已经选择了。
- 编写application.yml文件,配置有关rabbitmq信息。
- 编写配置类,创建交换机,队列以及绑定双方。
3. 消费者整合例子
- 同生产者类似,需要先编写application.yml文件,配置有关rabbitmq信息。
- 消费者需要监听队列是否有消息,因此应该编写 监听器,用于监听队列是否有消息。
- 由于消费者需要一直监听队列是否有消息,可以让消费者方直接启动springboot项目,一直运行着。
- 结果:
4. 消费者整合总结
- 导入rabbitMQ的start,我们在创建项目的时候,已经选择了。
- 编写application.yml文件,配置有关rabbitmq信息。
- 编写监听器类,使用@Rabbitlistener注解。