代码之家  ›  专栏  ›  技术社区  ›  user1008636

“publish-subscribe”消息传递模式是否需要尽可能多的队列?

  •  0
  • user1008636  · 技术社区  · 7 年前

    假设每次价格发生变化时,我都需要将价格发布给给定的股票报价器,而在另一端,有订阅者(消费者)需要使用该价格。

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

    我不知道如何只用一个队列就可以做到这一点,因为每一条消息都会在一个消费者拿起它时消失(这是一种点对点模型)

    1 回复  |  直到 7 年前
        1
  •  0
  •   Adem Catamak    7 年前

    是的,消息传递通信系统要求每个客户都有队列。

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

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