springboot整合rabbitmq(topic主题模式)(代码片段)

卡卡罗特与琪琪相爱有了悟饭,悟天 卡卡罗特与琪琪相爱有了悟饭,悟天     2022-11-29     254

关键词:

在direct模式基础上改,但是此次使用注解方式

消费者

修改对应的consumer,用注解方式定义交换机和队列的关系

@Service
@RabbitListener(bindings = @QueueBinding(
        value = @Queue(value = "duanxin.topic.queue",durable = "true",autoDelete = "false"),
        exchange = @Exchange(value = "topic_order_exchange",type = ExchangeTypes.TOPIC),
        key = "#.duanxin.#"
))
public class TopicDuanxinConsumer 

    @RabbitHandler
    public void receiveMsg(String msg)
        System.out.println("TopicDuanxinConsumer ---接收到的订单信息是:->" + msg);
    

@Service
@RabbitListener(bindings = @QueueBinding(
        value = @Queue(value = "email.topic.queue",durable = "true",autoDelete = "false"),
        exchange = @Exchange(value = "topic_order_exchange",type = ExchangeTypes.TOPIC),
        key = "*.email.#"
))
public class TopicEmailConsumer 

    @RabbitHandler
    public void receiveMsg(String msg)
        System.out.println("TopicEmailConsumer ---接收到的订单信息是:->" + msg);
    

@Service
@RabbitListener(bindings = @QueueBinding(
        value = @Queue(value = "sms.topic.queue",durable = "true",autoDelete = "false"),
        exchange = @Exchange(value = "topic_order_exchange",type = ExchangeTypes.TOPIC),
        key = "com.#"
))
public class TopicSmsConsumer 

    @RabbitHandler
    public void receiveMsg(String msg)
        System.out.println("TopicSmsConsumer ---接收到的订单信息是:->" + msg);
    

  • 启动SpringbootOrderRabbitmqConsumerApplication,查看交换机队列是否绑定成功
    image
    image
    image

生产者

只需要定义路由规则即可#是任意个,可以有多个,可以有一个,也可以没有;*最少有一个

    public void makeOrderTopic(String userId,String productId,int num)

        String orderId = UUID.randomUUID().toString();
        System.out.println("订单生成成功:" + orderId);

        String exchangeName = "topic_order_exchange";
        String routingKey = "com.duanxin";
        //@param1 交换机 @param2 路由key/queue队列名称 @param3 消息内容
        rabbitTemplate.convertAndSend(exchangeName,routingKey,orderId);
    
  • 运行测试类
@Test
void contextLoads2() 
   orderService.makeOrderTopic("1","1",12);

image
同时客户端也可以收到,当然再次发送也可以收到。
image

针对于注解方式

虽然简洁,但是还是推荐配置类方式,毕竟各有多爱,另外配置类推荐写在客户端。

springboot2.x-springboot整合amqp之rabbitmq

文章目录SpringBoot2.X-SpringBoot整合AMQP之RabbitMQRabbitMQ简介引入依赖编写配置编写接口启用Rabbit注解消息监听消息测试SpringBoot2.X-SpringBoot整合AMQP之RabbitMQSpringBoot2整合RabbitMQ案例。RabbitMQ简介简介RabbitMQ是一个由erlang开发的AMQP(AdvanvedMess... 查看详情

springboot整合rabbitmq

1整合RabbitMQ1.1RabbitMQ的相关概念组成部分队列(Queue)声明队列```java@BeanpublicQueueaddUserQueue(){returnnewQueue("demo-user-add");}```交换机(Exchange)用于转发消息,但是它不会做存储,如果没有Queuebind到Exchange的话,它会直接丢弃掉Producer发... 查看详情

springboot整合rabbitmq

记录学习过程从我做起。搞个备份有备无患加入依赖配置yml文件注入RabbitTemplate测试生产者功能消费端实现消费端结果 查看详情

springboot整合rabbitmq(代码片段)

SpringBoot整合RabbitMQ搭建环境创建测试项目:test_rabbitmq_boot添加依赖<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi& 查看详情

spring和springboot整合rabbitmq(代码片段)

Spring和SpringBoot整合RabbitMQ一、Spring整合RabbitMQ1.Producer1.1Config1.1Producer2.Consumer拉取推送消息2.1Config2.2Consumer3.Consumer消息监听(用于推消息)3.1Config3.2MessageListener3.3Consumer二、SpringBoot整合Ra 查看详情

springboot整合rabbitmq(新手整合请勿喷)

整合前先在springboot引入rabbitMqJAR包,版本号可以为自己自定义,本项目是跟随springboot的版本<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></ 查看详情

企业级springboot教程(十五)springboot整合rabbitmq

...务器,并且通过它怎么去发送和接收消息。我将构建一个springboot工程,通过RabbitTemplate去通过MessageListenerAdapter去订阅一个POJO类型的消息。准备工作15minIDEAmaven3.0在开始构建项目之前,机器需要安装rabbitmq,你可以去官网下载,htt... 查看详情

springboot整合rabbitmq入门~~

SpringBoot整合RabbitMQ 入门2020-01-12        创建生产者类,并且在yml配置文件中配置5要素连接MQyml配置文件      spring:      & 查看详情

springboot整合rabbitmq

  当前社区活跃度最好的消息中间件就是kafka和rabbitmq了,前面对kafaka的基础使用做了一些总结,最近开始研究rabbitmq,查看了很多资料,自己仿着写了一些demo,在博客园记录一下。rabbitmq基础知识  关于rabbitmq基础知识,可... 查看详情

[rabbitmq]整合springboot(代码片段)

整合SpringBoot创建项目引入依赖<dependencies><!--RabbitMQ依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId>< 查看详情

springboot整合rabbitmq

SpringBoot整合RabbitMQ公司最近在开发CRM系统的时候,需要将ERP的订单数据实时的传输到CRM系统中,但是由于每天的订单量特别大,采用实时获取后并存储到数据库中,接口的相应速度较慢,性能较差。经过经过多方位评估采用在数... 查看详情

springboot学习——springboot快速整合rabbitmq

RabbitMQ消息队列@[toc]简介优点erlang开发,并发能力强。社区活跃,使用的人多,稳定性较强。延时低缺点erlang语言开发的,国内精通的不多,日后定制开发困难。RabbitMQ工作模式1,"HelloWorld!"模式简单模式是RabbitMQ最简单入... 查看详情

springboot整合消息队列——rabbitmq

...息路由到bindingkey与routingkey模式匹配的队列中。这里基于springboot整合​​消息队列​​,测试这 查看详情

springboot整合rabbitmq之发送接收消息实战

实战前言前几篇文章中,我们介绍了SpringBoot整合RabbitMQ的配置以及实战了Spring的事件驱动模型,这两篇文章对于我们后续实战RabbitMQ其他知识要点将起到奠基的作用的。特别是Spring的事件驱动模型,当我们全篇实战完毕RabbitMQ并... 查看详情

springboot整合rabbitmq

    本文序列化和添加package参考:https://www.jianshu.com/p/13fd9ff0648dRabbitMq安装[root@topcheer~]#dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZEelasticsearchlatest874179f1960311daysago771MBsprin 查看详情

消息队列mq——springboot整合rabbitmq(代码片段)

...bitMQ的介绍、安装以及管理页面的使用消息队列MQ(二)——SpringBoot整合RabbitMQ文章目录系列文章目录前言一、简介二、搭建工程1.创建P系统(生产者)1.1yml配置RabbitMQ属性2.创建C系统(消费者)2.1yml配置RabbitMQ属性三、实操RabbitMQ五种工... 查看详情

springboot整合rabbitmq

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

springboot系列-springboot整合rabbitmq

一RabbitMQ的介绍    RabbitMQ是消息中间件的一种,消息中间件即分布式系统中完成消息的发送和接收的基础软件.这些软件有很多,包括ActiveMQ(apache公司的),RocketMQ(阿里巴巴公司的,现已经转让给apache).  消息中间件的工作过程可... 查看详情