RabbitMQ点对点或发布订阅

时间:2019-04-23 22:15:41

标签: rabbitmq jms

RabbitMQ是点对点还是发布订阅?还是两者都取决于配置选项?

我一直在研究配置,它们似乎都支持点对点模型而不是pub-sub。即消息一旦被使用就从队列中删除,第二个消费者则无法使用。

2 个答案:

答案 0 :(得分:1)

从概念上讲,RabbitMQ既是点对点又是发布订阅。您可以将侦听器应用程序注册到RabbitMQ交换的主题,并接收发布到该主题的所有消息。因此,这显然是“ pub-sub”。无论您打算使用哪种应用程序体系结构,都可以使用pub-sub概念来实现它。

但是,就像IBM MQ一样,RabbitMQ从“排队系统”开始(请注意MQ)。因此,为了实现pub-sub,他们只是在排队系统之上构建了pub-sub。那行得通,但是在配置方面可能会有些奇怪(例如,为什么要建立一个交换),并且可能不像以pub-sub开头的DNA消息传递系统那样有效。

如果您只想使用pub-sub并有数百个使用者,则可能会有更好的选择,也许是使用UDP多播分发数据的邮件系统。

答案 1 :(得分:1)

  

如果您想将RabbitMQ用作pub-sub,即消息不是   由第一个消费者移除,并且可以被许多消费者消费   订阅者。您将如何计算RabbitMQ?

使用扇出交换。每个使用者都声明自己的排他队列,绑定到该交换。将消息发布到交易所后,它将被路由到绑定到它的所有队列。

请阅读RabbitMQ文档和教程,其中解释了所有这些概念。


注意: RabbitMQ团队监视rabbitmq-users mailing list,并且有时仅在StackOverflow上回答问题。