“发布 - 订阅”消息模式是否需要与消费者一样多的队列?

时间:2018-03-14 01:31:26

标签: message-queue publish-subscribe

假设我需要在每次价格变化时将价格发布到给定的股票代码,而另一方面则有需要消费该价格的订户(消费者)。

这是典型的pub-sub模式(而不是点对点)。如果有N个消费者,是否通常设置N个队列,并让发布者向N个队列中的每个队列发布相同的消息?

我不知道如何只用一个队列就可以实现这一点,因为每个消息一旦消费者选中它就会消失(这是一个点对点模型)

1 个答案:

答案 0 :(得分:0)

是的,消息传递通信系统需要每个客户排队。

如果客户观察到更改事件,则需要按客户排队。 您将事件发布到某个消息代理。消费者来创建自己的队列。之后,消费者将自己的队列绑定到事件交换。只有这样,每个消费者才能到达并处理每一个事件。

或者

您创建一个消费者。该消费者消费事件并向每个客户发送通知请求。这种方式不可行,因为您必须知道每个客户及其端点地址以接受通知。此外,您必须在集成等过程中处理错误等。