主要是将一个消息,分发到绑定了它的队列上,而这些队列如消费者
自己去建立和绑定!
生产者不需要关心消费者有多少,消费者如果需要这种消息,只需要把队列绑定到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项目因为kackson版本问题启动报错解决方案
Java多线程下的其他组件之CyclicBarrier、Callable、Future和FutureTask详解
网友评论