广播消息java_rabbitmq实现向各服务广播消息

广播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);

}

}

希望与广大网友互动??

点此进行留言吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值