我们可以在发布/订阅消息中使用请求/回复模型吗?

时间:2012-06-19 05:54:43

标签: jms publish-subscribe

O'Reilly Media撰写的“Java消息服务”一书中写道:

  

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

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

  1. 发布商发布包含一些独特属性的邮件(例如UUIDcorrelationID
  2. 订阅者使用与UUID
  3. 相同的correlationID来回复邮件
  4. 发布者(也是回复主题的订阅者)选择发送了UUID的邮件。
  5. 这是错误的模式吗?

1 个答案:

答案 0 :(得分:2)

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

如果是pub / sub,则发布者和订阅者彼此不了解。可能会有一些发布者在一个主题上发布,并且可能有成千上万的订阅者正在倾听该主题。因此,在接收发布之后,如果订户使用主题回复请求,则该发布可以发送给许多订阅者。这样的事情可能会淹没网络。

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