RabbitMQ之Topic交换器模式开发
Topic交换器,即主题模式,进行规则匹配。
一、Provider
配置文件
1 spring.application.name=provider 2 spring.rabbitmq.host=192.168.50.30 3 spring.rabbitmq.port=5672 4 spring.rabbitmq.username=rabbit 5 spring.rabbitmq.password=rabbit 6 #设置交换器名称 7 mq.config.exchange=log.topic
代码
1 public class UserSender { 2 @Autowired 3 private AmqpTemplate amqpTemplate; 4 5 @Value("${mq.config.exchange}") 6 private String exchange; 7 8 public void send(String msg) { 9 //交换器、路由键、消息 10 this.amqpTemplate.convertAndSend(this.exchange, "user.log.debug", msg); 11 this.amqpTemplate.convertAndSend(this.exchange, "user.log.info", msg); 12 } 13 14 public void send2(String msg) { 15 this.amqpTemplate.convertAndSend(this.exchange, "product.log.debug", msg); 16 this.amqpTemplate.convertAndSend(this.exchange, "product.log.info", msg); 17 } 18 }
二、Condumer
配置文件
1 spring.appliction.name=consumer 2 spring.rabbitmq.host=192.168.50.30 3 spring.rabbitmq.port=5672 4 spring.rabbitmq.username=rabbit 5 spring.rabbitmq.password=rabbit 6 #设置交换器名称 7 mq.config.exchange=log.topic 8 #info 队列名称 9 mq.config.queue.info=log.info 10 #error 队列名称 11 mq.config.queue.error=log.error 12 #log 队列名称 13 mq.config.queue.logs=log.all
infoReceiver
1 /** 2 @RabbitListener bindings:绑定队列 3 @QueueBinding value:绑定队列的名称 4 exchange:配置交换器 5 @Queue value:配置队列名称 6 autoDelete:是否是一个可删除的临时队列 7 @Exchange value:为交换器起个名称 8 type:指定具体的交换器类型 9 */ 10 @Component 11 @RabbitListener( 12 bindings=@QueueBinding( 13 value=@Queue( 14 value="${mq.config.queue.info}", 15 autoDelete="true" 16 ), 17 exchange=@Exchange( 18 value="${mq.config.exchange}", 19 type=ExchangeTypes.TOPIC 20 ), 21 key="*.log.info" 22 ) 23 ) 24 public class InfoReceiver { 25 @RabbitHandler 26 public void process(String msg){ 27 System.out.println(msg); 28 } 29 }
logsReceiver
1 /** 2 @RabbitListener bindings:绑定队列 3 @QueueBinding value:绑定队列的名称 4 exchange:配置交换器 5 @Queue value:配置队列名称 6 autoDelete:是否是一个可删除的临时队列 7 @Exchange value:为交换器起个名称 8 type:指定具体的交换器类型 9 */ 10 @Component 11 @RabbitListener( 12 bindings=@QueueBinding( 13 value=@Queue( 14 value="${mq.config.queue.logs}", 15 autoDelete="true" 16 ), 17 exchange=@Exchange( 18 value="${mq.config.exchange}", 19 type=ExchangeTypes.TOPIC 20 ), 21 key="*.log.*" 22 ) 23 ) 24 public class LogsReceiver { 25 @RabbitHandler 26 public void process(String msg){ 27 System.out.println(msg); 28 } 29 }
转载于:https://www.cnblogs.com/guanghe/p/11026947.html
RabbitMQ之Topic交换器模式开发相关推荐
- RabbitMQ的Topics 通配符模式(Topic)
RabbitMQ的Topics 通配符模式(Topic) 模式说明 Topic 类型与 Direct 相比,都是可以根据 RoutingKey 把消息路由到不同的队列.只不过 Topic 类型Exch ...
- (八)RabbitMQ消息队列-通过Topic主题模式分发消息
前两章我们讲了RabbitMQ的direct模式和fanout模式,本章介绍topic主题模式的应用.如果对direct模式下通过routingkey来匹配消息的模式已经有一定了解那fanout也很好 ...
- RabbitMQ学习系列(五):routing路由模式和Topic主题模式
(一)routing路由模式 在前面一篇博客中讲到了exchange的类型,其中direct类型的exchange就是用于routing路由模式.direct类型的交换机是指:交换机和队列绑定时会设置 ...
- RabbitMQ安装|使用|概念|Golang开发
手册:http://www.rabbitmq.com/getstarted.html 安装:http://www.rabbitmq.com/download.html 参考:http://blog.c ...
- Rabbitmq专题:springboot如何整合Rabbitmq?Rabbitmq有哪些工作模式?
文章目录 1. Rabbitmq的安装 2. Rabbitmq的基本概念 3. RabbitMQ的工作模式 3.1 "Hello World!" 简单模式 3.2 Work que ...
- Topic交换器-搭建环境
我们再来看另一个交换器的使用,Topic交换器的使用,Topic交换器也称之为主题交换器,他的特点是什么呢,是根据这个规则来匹配,是一个什么样的规则呢,咱们先看这个图,这个图和上面最大的区别就是,我的 ...
- RabbitMQ五种工作模式
RabbitMQ五种工作模式 1.简单队列 一个生产者对应一个消费者!! 2.work 模式 一个生产者对应多个消费者,但是一条消息只能有一个消费者获得消息!!! 轮询分发就是将消息队列中的消息,依次 ...
- 消息中间件的应用场景与 RabbitMQ的六种工作模式介绍
消息中间件的应用场景与 RabbitMQ的六种工作模式介绍 消息中间件应用场景 异步处理 应用解耦 流量削峰 RabbitMQ的六种工作模式 简单模式 工作模式 发布订阅模式 路由模式 主题模式 PR ...
- Rabbitmq运用之fanout模式
Rabbitmq运用之fanout模式 代码在文末无条件提供 rabiitmq 的 fanout 属于多播模式,他的工作图如下,应用场景挺多的.比如订单,客户下单后,会发送消息告诉客户下单成功,通知仓 ...
最新文章
- 鸿蒙系统低端机推行,华为正在考虑少量推行搭载鸿蒙系统的中低端手机,有望年底推出!...
- 【对讲机的那点事】公网对讲机选择物联网卡常见问题
- 软考下午题具体解释---数据流图设计
- Linux 源代码阅读知识点及要求
- 各大快递公司面单号准确性验证的正则表达式,来自淘宝开放平台,时间是20181206,...
- python安装教程-CentOS 8 Python 安装教程
- c语言中用分数表示结果,C语言实例 计算分数的精确值
- mysql 输入密码后闪退_iPhone抹除还原后需要输入账号密码怎么办?
- 图书馆管理系统代码html语言,图书管理系统html - WEB源码|源代码 - 源码中国
- sql智能语法提示插件 sql prompt 10
- 算法-贪心算法知识总结
- 微信网页开发 /JS-SDK说明文档
- 如何解决SQL2008r2 登录不上的问题
- 想学IT的必看!不断提升自己创造溢价的能力,附带学习经验
- Loadrunner事务与子事务函数简介
- 问题解决:Ubuntu18.04版本始终无法动态获取IP地址
- Derek Sivers:我是一个慢思考者(译)
- ps4模拟器linux,PS4模拟器PC版下载-Spine(PS4模拟器)v1.0 官方试用版-手机腾牛网
- python字母对应数字上海迪士尼残疾人门票_所有景点提供无障碍设施 残障人士也能玩转上海迪士尼...
- 怎么做才可以把电脑上的照片给做成视频?-markdown编辑器