Here它指出“发送者和接收者不必为了通信而必须同时可用”。 here指出,在发布/订阅域中,“订阅主题的客户端只能使用在客户端创建订阅之后发布的消息,并且订阅者必须继续处于活动状态,以便其消费消息。”。对我而言,斜体语句似乎与第一个语句矛盾(“发送者和接收者不必同时可用”)。
如果订户必须继续保持活动状态以消费消息,则意味着发送方和接收方必须至少在pub / sub域中同时可用。如果必须可用,则发布/订阅域仅与RMI一样好。这是真的吗?
...发送方和接收方不必同时处于可用状态才能进行通信。
据我所知,这是关于messaging的一般说明,而不是JMS API提供的语义的细微差别。请注意,它位于“什么是消息传递?”下。在开始对JMS API进行具体讨论之前,请先进行标题介绍。
对于它的价值,JMS API 如果使用的是消息的[[point-to-point样式],则会提供这些语义(也在本教程中进行了讨论)。它还使用pub-sub消息传递样式提供了这些语义的一种变体,但是稍后我将进行介绍。
订阅主题的客户端只能使用在客户端创建订阅之后发布的消息,并且订阅者必须继续处于活动状态才能使用它来消费消息。
如果您在此之后阅读了下一个句子,则会发现一些重要的附加详细信息:
JMS API通过允许订阅者创建在某种程度上放松了这种定时依赖性,该订阅接收在订阅者不活动时发送的消息。因此,正如我之前提到的,您可以通过持久订阅使用pub-sub消息传递样式来更改不活动的发送者/接收者的语义。持久订阅
请记住,您所引用的文档只是一个教程。这不是JMS规范。我怀疑本教程的措词是否受到与规范相同的审查,因此您更有可能发现模棱两可的陈述。