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 绑定,或者没有符合路由规则的队列,那么消息会丢失!
例子一 通过广播(fano

本文介绍了RabbitMQ的广播(fanout)模式,通过一个具体的Java实例展示了如何创建交换机、队列,并将消息广播给多个消费者。在广播模式下,每个消费者都会接收到相同的消息副本,消息不会丢失。通过创建两个不同的队列并绑定到同一个广播交换机,启动两个消费者,生产者发送的消息会被两个消费者同时接收到。
最低0.47元/天 解锁文章
462

被折叠的 条评论
为什么被折叠?



