使用ESB / MessageBroker或Grails处理SOAP调用?

时间:2012-03-02 16:11:53

标签: grails soap jms mule apache-servicemix

我们目前正在尝试确定一个应用程序的应用程序架构,该架构需要接受大量的SOAP调用并进行SOAP调用。设计目标之一是我们需要考虑的简单性和稳健性。

在Grails空间中,我们都可以将它绑定到一个大的Grails应用程序中,但这会给健壮性方面带来麻烦,因为Grails应用程序的更新将禁用所有传入的SOAP请求。

我想知道是否拆分Grails应用程序并将其与ActiveMQ / ServiceMix / Mule等相结合推荐?任何建议或意见表示赞赏!什么样的解决方案应该是一个好的候选人?

1 个答案:

答案 0 :(得分:1)

通过在网络负载均衡器后面运行,您可以使用单片Grails应用程序实现一些稳定性。这将允许您执行无停机时间滚动升级。

现在这并没有解决其他问题,比如需要处理可能无法访问的远程SOAP服务等等......这就像Mule这样的工具/框架可以变得有用,因为它会为您提供异常处理,重试还有什么。

这取决于SOAP桥的预期行为:它是异步的(即,触发并忘记,将消息发送到网桥,立即获得ACK并让网桥尽可能地进行远程调度)或者是它同步(即,桥接的呼叫者被保持,直到收到远程响应并转发回它)。

如果您的网桥基本同步,我会说您可以坚持使用单个Grails应用并使用负载均衡器。由呼叫者来处理重试。

否则,如果它是异步的,请考虑使用消息传递中间件来帮助处理临时消息持久性并在发生故障时重新发送。