JMS发布/子域中的发送方-接收方可用性

JMS发布/子域中的发送方-接收方可用性,jms,Jms,它声明“发送方和接收方不必同时可用以进行通信。”。它还指出,在发布/订阅域中,“订阅主题的客户端只能使用在客户端创建订阅后发布的消息,并且订阅者必须继续处于活动状态才能使用消息。”。在我看来,斜体字的陈述似乎与第一个陈述相矛盾(“发送方和接收方不必同时可用”) 如果订阅者必须继续处于活动状态才能使用消息,则意味着发送者和接收者必须至少在发布/订阅域中同时可用。如果必须提供,则发布/子域仅与RMI一样好。这是真的吗 …发送方和接收方不必同时可用以进行通信 据我所知,这是关于消息传递的一般性陈述,而

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

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

…发送方和接收方不必同时可用以进行通信

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

值得一提的是,如果您使用的是点对点风格的消息传递(也在教程中讨论),jmsapi确实提供了这些语义。它还使用消息传递的pub-sub样式提供了这些语义的变体,但我将在稍后讨论

订阅主题的客户端只能使用在客户端创建订阅后发布的消息,并且订阅服务器必须继续处于活动状态才能使用消息

如果你在这之后读下一句话,你会发现一些重要的额外细节:

jmsapi通过允许订阅者创建持久订阅,在订阅者不活动时接收发送的消息,在一定程度上缓解了这种定时依赖性

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

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