【问题标题】:Message selector in pub/sub and point to point发布/订阅中的消息选择器和点对点
【发布时间】:2013-11-30 16:08:55
【问题描述】:

在阅读Java Message Service 这本书时,我遇到了以下我无法理解的行:

pub/sub 和 p2p 模型之间的另一个主要区别是, 使用 pub/sub 模型,消息选择器在 消息被复制到每个订阅者;而对于 p2p 模型, 消息选择器在消息添加到 排队。

我理解对于 pub/sub,它说:在代理向订阅者发送消息之前,它会应用消息选择器,但对于点对点(队列)来说,假设 2 个接收者已注册消息而不是应用消息选择器时?

【问题讨论】:

    标签: java jms


    【解决方案1】:

    pub/sub 和 p2p 模型之间的另一个主要区别是, 使用 pub/sub 模型,消息选择器在 消息被复制到每个订阅者。

    由于 pub/sub 向所有订阅者发送消息,如果订阅者处的选择器与消息不匹配,则消息很可能在订阅者处被丢弃。代理不关心基于选择器接收消息的订阅者,因为 pub/sub 按照设计交付给所有订阅者。基于那段摘录,这就是我的看法。

    ...而对于 p2p 模型,消息选择器在 消息已添加到队列中。

    对于队列,代理必须保证任何给定消息的“精确一次”传递,因此选择首先发生在代理端。假设我们有 3 个消费者在同一个队列上监听,并且他们都有相同的选择器。在这种情况下,代理选择一个消费者,并将消息仅传递给该消费者。如果没有消费者拥有与消息匹配的选择器,则代理会保留该消息,直到找到消费者或消息过期为止。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-13
      • 2013-08-04
      • 2017-05-01
      • 2015-03-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多