我理解实现JMS请求 - 回复机制有不同的方式(或排列),即请求队列和响应队列,请求主题和响应主题,或者混合使用。
我想知道的是,(1)推荐(或最常见)的方式是什么,以及(2)不同的排列如何衡量?
接下来,说的更正确 一个。 “将消息发送到队列”或b。 “通过队列发送消息”?
干杯!
答案 0 :(得分:4)
通常,使用队列。 “请求”意味着收件人,而不是通知任何关心的人,因此您可能想要排队的行为。
队列通常在一件事情上做得更好 - 或者是有限数量的同行 - 接收消息并对其进行处理。当消息实际上传达给处理它的人时,他们也倾向于使用持久性模型而不是主题。 (例如:如果丢弃消息是个问题,你可能想要一个队列)
主题更倾向于广播:说些什么,任何关心的人都会听到它。通常情况下,这与“......并没有预期的直接反应”是相辅相成的,因为“零个或多个听众”模型......如果你期望得到回应,零听众总是一个问题。
主题可以做持久性,但规则很陌生,很少你真正想要的。
最后,我认为大多数人会说“到”一个队列,因为队列和处理消息的事物是不同的,但实际上,它与记录你的意思的日志并不重要。 / p>
答案 1 :(得分:1)
同样使用队列,您可以让多个订阅者处理消息,以便它可以处理内置的负载均衡器。使用主题无法轻松完成此操作。