RabbitMQ是点对点还是发布订阅?还是两者都取决于配置选项?
我一直在研究配置,它们似乎都支持点对点模型而不是pub-sub。即消息一旦被使用就从队列中删除,第二个消费者则无法使用。
答案 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上回答问题。