fanout扇形交换机发布/订阅(Pub/Sub)

交换机的广播类型fanout,广播类型不需要routingKey,交换机会将所有的消息都发送到每个绑定的队列中去。

在发布消息时可以只先指定交换机的名称,交换机的声明的代码可以放到消费者端进行声明,队列的声明也放在消费者端来声明。

发布订阅类似观察者模式设计模式,一般适用于当接收到某条消息时同时做多种类似的任务的处理,扇形交换机将消息传送给不同的队列,不同的队列对同一种消息采取不同的行为。

扇形交换机是最基本的交换机类型,它所能做的事情非常简单———广播消息。扇形交换机会把能接收到的消息全部发送给绑定在自己身上的队列。因为广播不需要“思考”,所以扇形交换机处理消息的速度也是所有的交换机类型里面最快的。

 

生产者:

// 生产者不需要队列声明,也不需要声明交换机,只需要指定交换机的名称即可,队列和交换机的声明可以在消费者中声明
// 注意广播模式不需要routingKey, 可以写成""

channel.basicPublish(EXCHANGE_NAME, "", null, message.getBytes("UTF-8"));

 

消费者:

// 声明交换机:指定交换机的名称和类型(广播:fanout)
channel.exchangeDeclare(EXCHANGE_NAME, "fanout");
// 在消费者端队列绑定
channel.queueBind(QUEUE_NAME, EXCHANGE_NAME, "");

你可能感兴趣的:(fanout扇形交换机发布/订阅(Pub/Sub))