6

O'Reilly Media 的“Java 消息服务”一书说:

在点对点消息传递中使用请求/回复模型。

我们可以在发布/订阅消息中使用消息选择器,因此编写请求/回复模型就像在回复主题上编写一个简单的选择器一样简单:

  1. UUID发布者发布具有某些独特属性的消息(例如correlationID
  2. 订阅者对消息的响应UUIDcorrelationID
  3. 发布者(也是回复主题的订阅者)选择已发送的消息UUID

这是错误的模式吗?

4

1 回答 1

2

请求/回复消息模式通常用于调用由服务提供商托管的服务。根据服务请求,提供者将回复适当的响应。所以是一对一的。这里请求者和响应者彼此认识。

在发布/订阅的情况下,发布者和订阅者彼此不认识。一个主题可能有多个发布者发布,并且可能有数千个订阅者在收听该主题。因此,在收到发布后,如果订阅者使用主题回复请求,则该发布可能会发送给多个订阅者。这样的事情可能会淹没网络。

在我看来,请求/回复模型必须用于 P2P 消息传递,而不是 Pub/Sub。

于 2012-06-19T06:13:47.517 回答