RabbitMQ之Fanout交换器模式开发

Fanout模式,即广播模式,一个发送到交换机的消息会被转发到与该交换机绑定的所有队列上。

一、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=order.fanout

代码

 1 @Component
 2 public class Sender {
 3     @Autowired
 4     private AmqpTemplate amqpTemplate;
 5
 6     @Value("${mq.config.exchange}")
 7     private String exchange;
 8
 9     public void send(String msg){
10         this.amqpTemplate.convertAndSend(this.exchange, "", msg);
11     }
12 }

二、Consumer

配置文件

 1 spring.application.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=order.fanout
 8 #短信服务队列名称
 9 mq.config.queue.sms=order.sms
10 #push 服务队列名称
11 mq.config.queue.push=order.push

代码

SmsReceiver

 1 /**
 2     @RabbitListener bindings:绑定队列
 3     @QueueBinding value:绑定队列的名称
 4         exchange:配置交换器
 5         key:路由键
 6     @Queue value:配置队列名称
 7         autoDelete:是否是一个可删除的临时队列
 8     @Exchange value:为交换器起个名称
 9         type:指定具体的交换器类型
10 */
11 @Component
12 @RabbitListener(
13     bindings=@QueueBinding(
14         value=@Queue(
15             value="${mq.config.queue.sms}",
16             autoDelete="true"
17         ),
18         exchange=@Exchange(
19             value="${mq.config.exchange}",
20             type=ExchangeTypes.FANOUT
21         )
22     )
23 )
24 public class SmsReceiver {
25     @RabbitHandler
26     public void process(String msg) {
27         System.out.println(msg);
28     }
29 }

PushReceiver

 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.push}",
15             autoDelete="true"),
16         exchange=@Exchange(
17             value="${mq.config.exchange}",
18             type=ExchangeTypes.FANOUT
19         )
20     )
21 )
22 public class PushReceiver {
23     @RabbitHandler
24     public void process(String msg){
25         System.out.println("Push receiver: " + msg);
26     }
27 }

原文地址:https://www.cnblogs.com/guanghe/p/11027150.html

时间: 2024-08-30 02:26:40

RabbitMQ之Fanout交换器模式开发的相关文章

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 代

spring boot整合RabbitMQ(Fanout模式)

1.Fanout Exchange介绍Fanout Exchange 消息广播的模式,不管路由键或者是路由模式,会把消息发给绑定给它的全部队列,如果配置了routing_key会被忽略. 如上图所示,即当使用fanout交换器时,他会将消息广播到与该交换器绑定的所有队列上,这有利于你对单条消息做不同的反应. 例如存在以下场景:一个web服务要在用户完善信息时,获得积分奖励,这样你就可以创建两个对列,一个用来处理用户信息的请求,另一个对列获取这条消息是来完成积分奖励的任务. 2.代码示例 1).Q

RabbitMQ学习笔记4-使用fanout交换器

fanout交换器会把发送给它的所有消息发送给绑定在它上面的队列,起到广播一样的效果. 本里使用实际业务中常见的例子, 订单系统:创建订单,然后发送一个事件消息 积分系统:发送订单的积分奖励 短信平台:发送订单的短信 消息生产者SenderWithFanoutExchange 1 package com.yzl.test3; 2 3 import java.util.Date; 4 5 import com.google.gson.Gson; 6 import com.rabbitmq.clie

RabbitMQ安装|使用|概念|Golang开发

搬砖的陈大师版权所有,转载请注明:http://www.lenggirl.com/tool/RabbitMQ.html 手册:http://www.rabbitmq.com/getstarted.html 安装:http://www.rabbitmq.com/download.html 参考:http://blog.csdn.net/whycold/article/details/41119807 一.介绍 AMQP,即Advanced Message Queuing Protocol,高级消息

RabbitMQ五种工作模式学习总结

一.简介最近,在看一些消息中间件的内容,之前都没有好好学习一下消息中间件.本文将对RabbitMQ中五种常用的工作模式做一个简单的介绍和总结.RabbitMQ常用的工作模式有:简单队列模式.工作队列模式.发布订阅模式.路由模式.主题模式.本文参照RabbitMQ官网示例总结,详细可以到官网查看:https://www.rabbitmq.com/getstarted.html. 二.简单队列模式(Simple Queue) [a]模型图:只包含一个生产者以及一个消费者,生产者Producer将消息

RabbitMq 6种使用模式

RabbitMQ的5种模式与实例 1.1 简单模式Hello World 功能:一个生产者P发送消息到队列Q,一个消费者C接收 生产者实现思路: 创建连接工厂ConnectionFactory,设置服务地址127.0.0.1,端口号5672,设置用户名.密码.virtual host,从连接工厂中获取连接connection,使用连接创建通道channel,使用通道channel创建队列queue,使用通道channel向队列中发送消息,关闭通道和连接. 消费者实现思路 创建连接工厂Connec

Jlink V7在MDK下使用Cortex-M3-Jlink模式开发STM32的说明

Jlink V7在MDK下使用Cortex-M3-Jlink模式开发STM32的说明 开发环境:STM32F103RB(128K Flash 20K RAM)+MDK3.50+JLINK V7(v4.04) mdk3.50 新增一种cortex-ms-Jlink调试模式,可以很好地支持Jlink.Jlink-SWD调试,无RDI需要按复位的缺点.烧写速度比RDI慢一些. 1 软件安装 1.1 安装Segger jlink V4.04驱动 安装在c:\Program Files\SEGGER\JL

《连载 | 物联网框架ServerSuperIO教程》- 7.自控通讯模式开发及注意事项

感谢唯笑志在分享 原博主原地址:http://www.cnblogs.com/lsjwq/ 目       录 7. 自控通讯模式开发及注意事项... 2 7.1           概述... 2 7.2           通讯机制说明... 2 7.3           设备驱动开发注意事项... 3 7.3.1    实时发送数据... 3 7.3.2    发送固定实时请求数据命令... 4 7.3.3    优先发送其他数据... 4 7.3.4    如何选择IO通道发送数据..

《连载 | 物联网框架ServerSuperIO教程》- 6.并发通讯模式开发及注意事项

感谢唯笑志在分享 原博主原地址:http://www.cnblogs.com/lsjwq/ 目       录 6. 并发通讯模式开发及注意事项... 2 6.1           概述... 2 6.2           通讯机制说明... 2 6.3           设备驱动开发注意事项... 3 6.3.1    实时发送数据... 3 6.3.2    优先发送其他数据... 3 6.3.3    如何选择IO通道发送数据... 4 6.3.4    如何以DeviceCode分