内容简介:主要是将一个消息,分发到绑定了它的队列上,而这些队列如生产者不需要关心消费者有多少,消费者如果需要这种消息,只需要把队列绑定到exchange上即可生产者
广播fanout
主要是将一个消息,分发到绑定了它的队列上,而这些队列如 消费者
自己去建立和绑定!
对生产者是解耦的
生产者不需要关心消费者有多少,消费者如果需要这种消息,只需要把队列绑定到exchange上即可
流程
- 打开rabbitmq的ui
- 建立两个队列fanout1,fanout2
- 打开exchange里的amqp.fanout类型
- 绑定上面的两个队列
- 向exchange里发消息
- 回到队列页面,这时可以看到每个队列都收到了消息
例子
@Component public class AmqpConfig { public static final String LIND_FANOUT_EXCHANGE = "lindFanoutExchange"; /** * 广播交换机. * * @return */ @Bean public FanoutExchange fanoutExchange() { return new FanoutExchange(LIND_FANOUT_EXCHANGE); } }
生产者
/** * 发布广播消息. * * @param message . */ public void fanoutPublish(String message) { try { rabbitTemplate.convertAndSend(AmqpConfig.LIND_FANOUT_EXCHANGE, null, "广播消息"); } catch (Exception e) { e.printStackTrace(); } }
消费者
@Component public class FanoutSubscriber { @Autowired AmqpConfig amqpConfig; @Bean public Queue product1Queue() { return new Queue("product1.queue"); } @Bean public Queue product2Queue() { return new Queue("product2.queue"); } @Bean public Binding product1QueueBinding() { return BindingBuilder.bind(product1Queue()).to(amqpConfig.fanoutExchange()); } @Bean public Binding product2QueueBinding() { return BindingBuilder.bind(product2Queue()).to(amqpConfig.fanoutExchange()); } @RabbitListener(queues = "product1.queue") public void product1(String data) { System.out.println(data); } @RabbitListener(queues = "product2.queue") public void product2(String data) { System.out.println(data); } }
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- SpringBoot 实战 (十六) | 整合 WebSocket 基于 STOMP 协议实现广播消息
- WebSocket的故事(二)—— Spring中如何利用STOMP快速构建WebSocket广播式消息模式
- laravel 广播
- Java单播、广播、多播(组播)
- Android中的广播机制
- 网络通信4:TCP广播
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。