我们目前正在尝试为需要接受大量SOAP调用并进行SOAP调用的应用程序确定应用程序架构。设计目标之一是简单性和健壮性,这是我们需要考虑的。
在Grails领域,我们都可以将其绑定到一个大的Grails应用程序中,但这在健壮性方面令人头疼,因为Grails应用程序的更新将禁用所有传入的SOAP请求。
我想知道是否建议拆分Grails应用程序并将其与ActiveMQ/ServiceMix/Mule等相结合?如有任何建议或意见,欢迎光临!什么样的解决方案才是一个好的候选者?
发布于 2012-03-03 01:01:18
您可以通过在网络负载均衡器后面运行单片Grails应用程序来实现一定的健壮性。这将允许您执行无停机滚动升级。
现在,这并没有解决其他问题,比如需要处理可能无法访问的远程SOAP服务,等等。这就是像Mule这样的工具/框架可以变得有用的时候,因为它将为你提供异常处理,重试等等。
这是由SOAP桥的预期行为决定的:它是否是异步的(即,触发并忘记,将消息发送到网桥,立即获得ACK,并让网桥在任何可能的情况下进行远程调度)或者它是同步的(即,保持网桥的调用者,直到接收到远程响应并转发回它为止)。
如果你的网桥基本上是同步的,我会说你可以坚持使用你的单个Grails应用程序,并使用负载均衡器。这将由调用者来处理重试。
否则,如果它是异步的,可以考虑使用消息传递中间件来帮助实现临时消息持久化和失败时的重新传递。
https://stackoverflow.com/questions/9536568
复制相似问题