RabbitMQ入门学习系列(四) 发布订阅模式

时间:2022-11-25 16:55:41


什么时发布订阅模式

把消息发送给多个订阅者。也就是有多个消费端都完整的接收生产者的消息

换句话说 把消息广播给多个消费者

消息模型的核心

RabbitMQ不发送消息给队列,生产者也不知道消息发送到队列

生产者只发送消息到exchange 交换器,

exchange一方面从生产者接收消息,另一方面把消息推送到队列中。

exchange必须知道如何处理接收到的消息 。是加到特定队列中,还是添加到多个队列中,还是放弃。这个是由他的类型来决定 。

而消息的类型有四种,分别是


fanout消息类型

fanout消息类型可以把消息广播到所有队列中。

指定exchange的名称为logs,routingkey设置为空。



为队列的名称指定一个随机数



经过对之前代码的改造

我们定义了一个可以广播类型的exchange和一个随机名字的队列 ,

现在我们需要把他们绑定起来。



生产者的代码

  1. 创建连接
  2. 创建信道
  3. 声明类型为fanout的消息
  4. publish发送消息


消费者代码

  1. 创建连接
  2. 创建信道
  3. 声明类型为fanout的消息
  4. 声明一个队列
  5. 把队列然后绑定到信道上
  6. 接收消息

测试结果

启了一个生产者,两个消费者,生产者发送10条消息 ,两个消费者都收到了10条消息

RabbitMQ入门学习系列(四) 发布订阅模式

友情提示

我对我的文章负责,发现好多网上的文章 没有实践,都发出来的,让人走很多弯路,如果你在我的文章中遇到无法实现,或者无法走通的问题。可以直接在公众号《爱码农爱生活 》留言。必定会再次复查原因。让每一篇 文章的流程都能顺利实现。