文章目录

  • 0. Springboot整合
  • 1. 生产者整合例子
  • 2. 生产者整合总结
  • 3. 消费者整合例子
  • 4. 消费者整合总结
  • 其他文章
  • RabbitMQ(一)-----MQ基础知识点
  • RabbitMQ(二)-----rabbitMq基础知识与工作模式(代码演示)
  • RabbitMQ(三)-----非常详细Springboot整合步骤
  • RabbitMQ(四)-----高级应用(消息可靠性投递,消费端限流,TTL,死信队列,延迟队列)
  • RabbitMQ(五)-----集群搭建


0. Springboot整合

1. 生产者整合例子

  1. 首先创建两个springboot项目,分别为rabbitmq_producer(生产者) ,rabiitmq_consumer(消费者)
    下面是以生产者为例子,消费者同理。
  2. springboot rabbitmq配置多个消费者 rabbitmq配置多个生产者_工作模式


  3. springboot rabbitmq配置多个消费者 rabbitmq配置多个生产者_工作模式_02

  4. 最终如下图
  5. springboot rabbitmq配置多个消费者 rabbitmq配置多个生产者_spring_03

  6. 打开producer生产者模块,创建并编写application.yml文件。
spring:
  rabbitmq:
    host: 127.0.0.1  # 地址
    port: 5672		 # 端口
    username: jin    # 用户名
    password: jin    # 密码
    virtual-host: /jin  # 虚拟主机
  1. 创建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();
    }
}
  1. 进行测试,并登录管理页面查看。
@SpringBootTest
class RabbitmqProducerApplicationTests {

    // 注入模板
    @Autowired
    RabbitTemplate rabbitTemplate;

    @Test
    public void TopicTest(){
    	// 参数:
    	// 1. 交换机名字
    	// 2. route-key 路由键
    	// 3. 消息
        rabbitTemplate.convertAndSend("Topic-Exchange","Topic.add","springboot整合第一次");
    }

}

springboot rabbitmq配置多个消费者 rabbitmq配置多个生产者_spring_04

springboot rabbitmq配置多个消费者 rabbitmq配置多个生产者_Test_05

2. 生产者整合总结

  1. 导入rabbitMQ的start,我们在创建项目的时候,已经选择了。
  2. 编写application.yml文件,配置有关rabbitmq信息
  3. 编写配置类,创建交换机,队列以及绑定双方。

3. 消费者整合例子

  1. 同生产者类似,需要先编写application.yml文件,配置有关rabbitmq信息。
  2. 消费者需要监听队列是否有消息,因此应该编写 监听器,用于监听队列是否有消息。
  3. 由于消费者需要一直监听队列是否有消息,可以让消费者方直接启动springboot项目,一直运行着。
  4. 结果:

4. 消费者整合总结

  1. 导入rabbitMQ的start,我们在创建项目的时候,已经选择了。
  2. 编写application.yml文件,配置有关rabbitmq信息
  3. 编写监听器类,使用@Rabbitlistener注解。