当前位置:   article > 正文

Spring Boot 整合 RabbitMQ_spring boot 整合rabbitmq

spring boot 整合rabbitmq

Spring Boot 整合 RabbitMQ

简介

在Spring项目中,可以使用Spring-Rabbit去操作RabbitMQ

尤其是在spring boot项目中只需要引入对应的amqp启动器依赖即可,方便的使用RabbitTemplate发送消息,使用注解接收消息。

一般在开发过程中:

生产者工程:

  1. application.yml文件配置RabbitMQ相关信息;
  2. 在生产者工程中编写配置类,用于创建交换机和队列,并进行绑定
  3. 注入RabbitTemplate对象,通过RabbitTemplate对象发送消息到交换机

消费者工程:

  1. application.yml文件配置RabbitMQ相关信息
  2. 创建消息处理类,用于接收队列中的消息并进行处理

搭建生产者工程

1.创建生产者项目

创建一个Spring Boot项目:

1 2

2.导入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
  • 1
  • 2
  • 3
  • 4

3.配置项目

3.1 配置文件
#端口
server.port=8111

#rabbitmq配置
#这里是自己的ip地址
spring.rabbitmq.host=192.168.57.129   
spring.rabbitmq.port=5672
#自己设置的有权限的账号密码
spring.rabbitmq.username=admin
spring.rabbitmq.password=admin
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
3.2 RabbitMQ配置类
@Configuration
public class RabbitMQConfig {
    //交换机名称
    public static final String ITEM_TOPIC_EXCHANGE = "item_topic_exchange";
    //队列名称
    public static final String ITEM_QUEUE = "item_queue";
    //声明交换机
    @Bean("itemTopicExchange")
    public Exchange topicExchange(){
        return ExchangeBuilder.topicExchange(ITEM_TOPIC_EXCHANGE).durable(true).build();
    }
    //声明队列
    @Bean("itemQueue")
    public Queue itemQueue(){
        return QueueBuilder.durable(ITEM_QUEUE).build();
    }
    //绑定队列和交换机
    @Bean
    public Binding itemQueueExchange(@Qualifier("itemQueue") Queue queue,
                                     @Qualifier("itemTopicExchange") Exchange exchange){
        return BindingBuilder.bind(queue).to(exchange).with("item.#").noargs();
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
3.3 发送消息控制类
@RestController
public class SendMsgController {
    //注入rabbitmq模板
    @Autowired
    private RabbitTemplate rabbitTemplate;
    @GetMapping("/sendmsg")
    public String sendMsg(@RequestParam String msg,@RequestParam String key){
        /**
         * 发送消息
         *  参数1:交换机名称
         *  参数2:路由 key
         *  参数3:发送的消息
         */
        rabbitTemplate.convertAndSend(RabbitMQConfig.ITEM_TOPIC_EXCHANGE,key,msg);
        //返回消息
        return "发送消息成功";
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

搭建消费者工程

1.创建生产者项目

创建一个Spring Boot项目:

3 4

2.导入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
  • 1
  • 2
  • 3
  • 4

3.创建消费者类

@Component
public class MyListener {
    @RabbitListener(queues = "item_queue")
    public void msg(String msg){
        System.out.println("消费者运行:"+msg);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

运行测试

路径为:localhost:8111/sendmsg?msg=这是一个测试鸭&key=item.test

  • 先启动生产者工程

  • 访问这个路径,会显示发送消息成功 (这时候 队列 和 交换机 都已经创建了)

  • 启动消费者工程

  • 再次访问路径

  • 查看结果

5 6

7

个人博客为:
MoYu’s HomePage

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/932004
推荐阅读
相关标签
  

闽ICP备14008679号