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

一、Provider

配置文件

 spring.application.name=provider
spring.rabbitmq.host=192.168.50.30
spring.rabbitmq.port=5672
spring.rabbitmq.username=rabbit
spring.rabbitmq.password=rabbit
#设置交换器的名称
mq.config.exchange=order.fanout

代码

 @Component
public class Sender {
@Autowired
private AmqpTemplate amqpTemplate; @Value("${mq.config.exchange}")
private String exchange; public void send(String msg){
this.amqpTemplate.convertAndSend(this.exchange, "", msg);
}
}

二、Consumer

配置文件

 spring.application.name=consumer
spring.rabbitmq.host=192.168.50.30
spring.rabbitmq.port=5672
spring.rabbitmq.username=rabbit
spring.rabbitmq.password=rabbit
#设置交换器的名称
mq.config.exchange=order.fanout
#短信服务队列名称
mq.config.queue.sms=order.sms
#push 服务队列名称
mq.config.queue.push=order.push

代码

SmsReceiver

 /**
@RabbitListener bindings:绑定队列
@QueueBinding value:绑定队列的名称
exchange:配置交换器
key:路由键
@Queue value:配置队列名称
autoDelete:是否是一个可删除的临时队列
@Exchange value:为交换器起个名称
type:指定具体的交换器类型
*/
@Component
@RabbitListener(
bindings=@QueueBinding(
value=@Queue(
value="${mq.config.queue.sms}",
autoDelete="true"
),
exchange=@Exchange(
value="${mq.config.exchange}",
type=ExchangeTypes.FANOUT
)
)
)
public class SmsReceiver {
@RabbitHandler
public void process(String msg) {
System.out.println(msg);
}
}

PushReceiver

 /**
@RabbitListener bindings:绑定队列
@QueueBinding value:绑定队列的名称
exchange:配置交换器
@Queue value:配置队列名称
autoDelete:是否是一个可删除的临时队列
@Exchange value:为交换器起个名称
type:指定具体的交换器类型
*/
@Component
@RabbitListener(
bindings=@QueueBinding(
value=@Queue(
value="${mq.config.queue.push}",
autoDelete="true"),
exchange=@Exchange(
value="${mq.config.exchange}",
type=ExchangeTypes.FANOUT
)
)
)
public class PushReceiver {
@RabbitHandler
public void process(String msg){
System.out.println("Push receiver: " + msg);
}
}

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

  1. RabbitMQ之Topic交换器模式开发

    Topic交换器,即主题模式,进行规则匹配. 一.Provider 配置文件 spring.application.name=provider spring.rabbitmq.host=192.168 ...

  2. RabbitMQ之Direct交换器模式开发

    Dirtct交换器,即发布与订阅模式,匹配规则为完全匹配. 一.Provideer 配置文件 spring.application.name=provider spring.rabbitmq.host ...

  3. spring boot整合RabbitMQ(Fanout模式)

    1.Fanout Exchange介绍Fanout Exchange 消息广播的模式,不管路由键或者是路由模式,会把消息发给绑定给它的全部队列,如果配置了routing_key会被忽略. 如上图所示, ...

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

    fanout交换器会把发送给它的所有消息发送给绑定在它上面的队列,起到广播一样的效果. 本里使用实际业务中常见的例子, 订单系统:创建订单,然后发送一个事件消息 积分系统:发送订单的积分奖励 短信平台 ...

  5. 8、RabbitMQ三种Exchange模式(fanout,direct,topic)的性能比较

    RabbitMQ三种Exchange模式(fanout,direct,topic)的性能比较 RabbitMQ中,除了Simple Queue和Work Queue之外的所有生产者提交的消息都由Exc ...

  6. demo rabbitmq topic(主题模式),fanout(广播模式),轮询分发,确认接收Ack处理

    //durable = true 代表持久化 交换机和队列都要为true ,持久代表服务重启,没有处理的消息依然存在 //topic 根据不同的routkey 发送和接收信息 //fanout 广播模 ...

  7. Spring Boot+RabbitMQ 通过fanout模式实现消息接收(支持消费者多实例部署)

    本文章适用的场景:同一条消息可以被多个消费者同时消费.注意:当消费者多实例部署时,会轮询消费消息.网上有大量的的案例展示:P生产一条消息,消费者服务C中建立Q1和Q2两个队列共同消费.但极少的材料展示 ...

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

    搬砖的陈大师版权所有,转载请注明:http://www.lenggirl.com/tool/RabbitMQ.html 手册:http://www.rabbitmq.com/getstarted.ht ...

  9. RabbitMQ详解(三)------RabbitMQ的五种模式

    RabbitMQ详解(三)------RabbitMQ的五种模式 1.简单队列(模式) 上一篇文章末尾的实例给出的代码就是简单模式. 一个生产者对应一个消费者!!! pom.xml ​ 必须导入Rab ...

随机推荐

  1. angularcli 第二篇(数据绑定、属性申明、绑定属性)

    1.数据绑定 插值绑定: <li>{{ hero.name }} </li>       或       <div  class = "{{ demo }}&q ...

  2. js HTTP 下载 处理 api 请求 返回数据流

    axios({ method: 'post', url: 'url....', data:{}, timeout: 1000*60, responseType: 'blob',// 此选项必须设置 否 ...

  3. java容器三:HashMap源码解析

    前言:Map接口 map是一个存储键值对的集合,实现了Map接口的主要类有以下几种 TreeMap:用红黑树实现 HashMap:数组和链表实现 HashTable:与HashMap类似,但是线程安全 ...

  4. 关于使用scipy.stats.lognorm来模拟对数正态分布的误区

    lognorm方法的参数容易把人搞蒙.例如lognorm.rvs(s, loc=0, scale=1, size=1)中的参数s,loc,scale, 要记住:loc和scale并不是我们通常理解的对 ...

  5. [转]Linux网络 - 数据包的接收过程

    转, 原文: https://segmentfault.com/a/1190000008836467 ------------------------------------------------- ...

  6. P2577 [ZJOI2005]午餐[DP]

    题目描述 上午的训练结束了,THU ACM小组集体去吃午餐,他们一行N人来到了著名的十食堂.这里有两个打饭的窗口,每个窗口同一时刻只能给一个人打饭.由于每个人的口味(以及胃口)不同,所以他们要吃的菜各 ...

  7. 《Exception团队》第七次作业:团队项目设计完善&编码

    一.项目基本介绍 项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 Exception 作业学习目标 1.掌握软件编码实现的工程要求 作业任务 1. ...

  8. destoon7.0的商业圈应用于6.0下修改方案

    因为destoon7.0发布了,于是自己作死又下载了7.0,看了看7.0的模板确实比6.0好看多了,所以就打算把7.0的模板应用于6.0,在商业圈上出了一个问题,就是商业圈的圈子7.0调用与6.0不同 ...

  9. margin值为负值

    引用地址:http://www.cnblogs.com/2050/archive/2012/08/13/2636467.html#2457812 http://www.cnblogs.com/jsco ...

  10. jsp里导入java包的问题

    写jsp导包的时候出了两处错误(什么?特么两处,总共就一句话啊...): 新建jsp文件会自动生成一句: <%@ page language="java" import=&q ...