【问题标题】:Design issue web service vs JMS设计问题 Web 服务与 JMS
【发布时间】:2013-04-08 23:28:26
【问题描述】:

我正在开发的项目(jsf Web 应用程序)使用 2 个 Web 服务来从网络中检索一些数据。

到目前为止,请求很小,因此等待 ws 响应的超时时间很短,但现在客户希望向请求中添加更多数据,这基本上会将每个 ws 的工作时间增加 30 分钟。

我正在考虑在这种情况下使用 jms 而不是 ws

我想听听一些意见

有意义吗?

谢谢

【问题讨论】:

  • 你是对的,当业务流程需要几分钟而不是(毫秒)秒时,它是异步消息传递的良好候选者,即 JMS。但是,如果实际瓶颈不是请求处理而是消息传输,请考虑压缩 Web 服务响应。一个需要 30 分钟的网络服务调用,如果我是你,我会研究设计以消除低效率
  • 对不起,我想我解释的场景不够好,我的意思是远程机器中的过程可能需要 30 分钟,但 ws 调用非常快
  • 异步ws呢?
  • 如果是处理时间限制,那么一定要使用JMS。即发即弃语义,客户端只需发送请求并立即收到接收确认。我不会推荐异步 WS 设计,因为它没有确认空间。在 Web 应用中,视觉反馈非常重要,因此 Web 服务至少应该确认服务调用的有效性和接收

标签: java jsf-2 jms


【解决方案1】:

转向异步处理看起来适合您的情况。如果以前调用的性质是事务性的,您还应该注意事务语义。

我强烈建议您在 Apache ActiveMQ 之上使用 Apache Camel。虽然后者是可替换的,但前者的功能是独一无二的。

进一步阅读:

http://en.wikipedia.org/wiki/Apache_Camel

What exactly is Apache Camel?

When to use Spring Integration vs. Camel?

Apache Camel > 文档 > 组件 > Spring Web 服务:

http://camel.apache.org/spring-web-services.html

【讨论】:

    猜你喜欢
    • 2012-04-23
    • 2016-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 2020-05-21
    • 2012-10-12
    相关资源
    最近更新 更多