4

我知道实现 JMS 请求-回复机制有不同的方式(或排列方式),即请求队列和响应队列、请求主题和响应主题,或者两者的混合。

我想知道的是,(1)推荐(或最常见)的方式是什么,以及(2)不同的排列如何衡量?

接下来,是不是更正确的说法是a。“向队列发送消息”或 b。“通过队列发送消息”?

干杯!

4

2 回答 2

4

通常,使用队列。“请求”意味着收件人,而不是任何关心的人的通知,因此您可能想要队列的行为。

队列通常在一件事情上做得更好 - 或数量有限的对等事情 - 接收消息并处理它。当消息实际到达处理它的人很重要时,它们也倾向于比主题更理智的持久性模型。(例如:如果丢弃消息是一个问题,您可能需要一个队列)

主题更面向广播:说点什么,任何关心它的人都会听到。通常,这与“......并且没有预期的直接响应”密切相关,因为“零个或多个听众”模型......好吧,如果您期望得到回应,零个听众总是一个问题。

主题可以做持久化,但规则很陌生,很少是你真正想要的。

最后,我认为大多数人都会说“to”一个队列,因为队列和从队列中处理消息的事物是不同的,但实际上,它与日志无关紧要,因为你传达了你的意思。

于 2012-01-31T02:22:30.240 回答
1

同样使用队列,您可以让多个订阅者处理消息,因此它是内置负载均衡器的孩子。使用主题无法轻松做到这一点。

于 2013-01-19T23:29:01.180 回答