# springboot 集成 RabbitMQ -1

# RabbitMQTemplate

在 springboot 中,用的比较多是 rabbitMQTemplate。通过 rabbitMQTemplate 结合 spring 的 bean 管理,可以比较方便的进行开发。

# 1、导入依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

# 2、完善配置文件

spring.rabbitmq.host=127.0.0.1 
spring.rabbitmq.port=5673
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

以上几个配置参数是最基础的,基本上都会用到,注意端口和地址

# 3、rabbitMQ 管理界面配置

如果只是这样简单的配置,那么需要在 rabbitMQ 的管理界面中配置 Exchange、Binding、Queue,这样才能正常的推送消息。打开 rabbitMQ manage 的页面,默认的地址是 IP:15672 ,用户名和密码默认都是 guest

# 3.1 创建 Exchange


如图,在 Exchange 配置中,选择了创建了一个名叫 rabbit.test 的 exchange,并且指定类型为 topic 类型(可以根据实际情况进行修改和配置)

# 3.2 创建 Queue


这样,便创建了一个名叫 testque 的队列

# 3.3 Binding


选择刚才创建的 Exchange,点击进入,可以为 Exchange 绑定队列,并且指定 Binding 信息, *.a.* ,则例如 b.a.c 这样的路由键(routingKey)可以进行匹配

# 3.4 Coding

@Autowired
    RabbitTemplate rabbitTemplate;
    @Test
    public void testMQ() {
        rabbitTemplate.setExchange("rabbit.test"); // 设置交换机
        rabbitTemplate.setRoutingKey("b.a.c"); // 设置路由键
        for (int i = 0; i < 10000; i++) {
            rabbitTemplate.convertAndSend("发送消息" + i);
        }
    }


可以看到已经成功的把数据发送到对应的队列中了。

# 4、总结

以上其实是一个相对简单的方法,实现了发送消息到对应的队列,尽量使用了 rabbitMQTemplate 的默认配置,缺点是,必须要在使用前先在管理界面中创建和设置对应的交换机,队列,路由键等信息。其实结合 Spring 的 @Configuration@Bean 和 rabbiMQ 的 API,可以不用事先进行创建和设置(等我研究明白了补充)。