| fanout | 广播 |
| topic | 主体,规则匹配 |
====================================================================
FanoutExchange 的数据交换策略是把所有到达 FanoutExchang 的消息转发给所有与它绑定的Queue ,在这种策略中, routingkey 将不起任何作用.
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190522160145890.png?x-oss-process=image/watermark,type_ZmFuZ3poZW
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
5naGVpdGk,shadow_10,text_aHR0cHM6Ly9kcGItYm9ib2thb3lhLXNtLmJsb2cuY3Nkbi5uZXQ=,size_16,color_FFFFFF,t_70)
项目结构
配置文件
spring.application.name=springcloud-mq
spring.rabbitmq.host=192.168.88.150
spring.rabbitmq.port=5672
spring.rabbitmq.username=dpb
spring.rabbitmq.password=123
mq.config.exchange=order.fanout
#短信服务队列名称
mq.config.queue.sms=order.sms
#push 服务队列名称
mq.config.queue.push=order.push
两个消费者
@Component
@RabbitListener(
bindings=@QueueBinding(
value=@Queue(value="${mq.config.queue.sms}",autoDelete=“true”),
exchange=@Exchange(value="${mq.config.exchange}",type= ExchangeTypes.FANOUT)
)
)
public class SmsReciver {
/**
-
接收消息的方法。采用消息队列监听机制
-
@param msg
*/
@RabbitHandler
public void process(String msg){
System.out.println("Sms…receiver: "+msg);
}
}
@Component
@RabbitListener(
bindings=@QueueBinding(
value=@Queue(value="${mq.config.queue.push}",autoDelete=“true”),
exchange=@Exchange(value="${mq.config.exchange}",type= ExchangeTypes.FANOUT)
)
)
public class PushReciver {
/**
-
接收消息的方法。采用消息队列监听机制
-
@param msg
*/
@RabbitHandler
public void process(String msg){
System.out.println("Push…receiver: "+msg);
}
}
启动后等待接收消息即可~
项目结构
配置文件
spring.application.name=springcloud-mq
spring.rabbitmq.host=192.168.88.150
spring.rabbitmq.port=5672