RabbitMQ 基础架构如下:
前一篇文章,有关于1和2的例子
下面介绍3 Publish/SubScribe的例子
3与2 的区别是:
2 中的么个consumer 收到的msg是互斥的,加起来是一个总和。
3中的每个consumer收到的msg是一样的,自己就是一个总和,msg被复制了多份。
在介绍3的例子之前,需要了解下交换机:
lExchange:交换机(X)。一方面,接收生产者发送的消息。另一方面,知道如何处理消息,例如递交给某个特别队列、递交给所有队列、或是将消息丢弃。到底如何操作,取决于Exchange的类型。Exchange有常见以下3种类型:
Ø
Fanout:广播,将消息交给所有绑定到交换机的队列
Ø
Direct:定向,把消息交给符合指定routing key 的队列
Ø
Topic:通配符,把消息交给符合routing pattern(路由模式) 的队列
Exchange(交换机)只负责转发消息,不具备存储消息的能力,因此如果没有任何队列与 Exchange 绑定,或者没有