我过去曾使用 JMS 构建应用程序并且效果很好。现在我与喜欢使用规范的架构师一起工作:SOAP over Java Message Service 1.0。

这个规范接缝过于复杂。 我没有看到很多实现(除了插入规范的供应商之外)。

这里有人在生产环境中使用这个规范吗? 使用此规范的主要好处是什么?

链接:http://www.w3.org/TR/2009/CR-soapjms-20090604/

请您参考如下方法:

我在使用基于 JMS 的 SOAP 时运气不佳。如果它用于即发即弃操作(WSDL 中没有定义响应消息),它确实有一定意义。在这种情况下,您可以使用 WSDL 生成客户端框架,并且可以将 WSDL 存储在您的服务注册表中。此外,您还可以获得 JMS 的所有常见优势(解耦发送方和接收方、负载平衡、优先级排序、安全性、桥接到多个目的地 - 例如非侵入式审计)。

另一方面,SOAP 主要用于请求/回复类型的操作。通过 JMS 实现请求/回复模式会引入以下问题:

  • 无法正确处理超时。您永远不知道请求是否仍在等待交付或卡在被调用的组件中。
  • 响应通常在临时队列中发送。如果客户端在收到响应之前断开连接,并且没有在响应消息上明确设置生存时间,临时队列可能会卡在 JMS 服务器中,直到您重新启动它。
  • 中间有一个 JMS 服务器会显着增加往返时间并增加不必要的复杂性。
  • JMS 提供了一种可靠的传输介质,可以将发送方与接收方分离,但在请求/回复的情况下,客户端不应与服务器分离。客户端需要知道服务器是否已启动且可用。

我能想到的唯一优点是可以在客户端不知道的情况下移动服务器或进行负载平衡,但是使用 UDDI 和 HTTP 负载平衡器是更好的解决方案。


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!