【问题标题】:Sender receiver availability in JMS pub/sub domainJMS 发布/订阅域中的发送方接收方可用性
【发布时间】:2019-10-07 00:06:04
【问题描述】:

Here 它声明“发送者和接收者不必同时可用才能进行通信。”。 here 声明在 pub/sub 域中“订阅主题的客户端只能使用在客户端创建订阅后发布的消息,并且订阅者必须继续处于活动状态才能使用消息。”。对我来说,斜体声明似乎与第一个声明相矛盾(“发送者和接收者不必同时可用”)。

如果订阅者必须继续处于活动状态才能消费消息,这意味着发送者和接收者必须至少在发布/订阅域中同时可用。如果它们必须可用,则 pub/sub 域仅与 RMI 一样好。这是真的吗?

【问题讨论】:

    标签: jms


    【解决方案1】:

    ...发送者和接收者不必同时可用才能进行通信。

    据我所知,这是关于消息传递的一般性陈述,而不是对 JMS API 提供的语义的细致解释。请注意,它位于“什么是消息?”下。在开始具体讨论 JMS API 之前进行标题。

    不管怎样,如果您使用 点对点 样式的消息传递,JMS API 确实提供了这些语义(也在教程中讨论) .它还使用 pub-sub 消息传递样式提供了这些语义的变体,但我稍后会谈到。

    订阅主题的客户端只能使用客户端创建订阅后发布的消息,订阅者必须继续处于活动状态才能使用消息。

    如果您在此之后阅读下一句,您会发现一些重要的附加细节:

    JMS API 通过允许订阅者创建持久订阅,在一定程度上放宽了这种时间依赖性,这些订阅在订阅者不活动时接收发送的消息。

    因此,正如我之前提到的,您可以通过持久订阅使用 pub-sub 样式的消息传递来获得非活动发送者/接收者语义的变体。

    请记住,您引用的文档只是一个教程。这不是 JMS 规范。我怀疑本教程的措辞是否经过与规范相同的审查,因此您更有可能发现模棱两可的陈述。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-12
      • 2016-06-17
      • 1970-01-01
      • 1970-01-01
      • 2013-11-21
      • 2020-10-09
      • 2012-11-02
      • 1970-01-01
      相关资源
      最近更新 更多