我使用带有spring-ws组件的Apache Camel 2.10.0来路由一些(20+)WS / SOAP操作。 示例代码如下所示:
from("spring-ws:rootqname:{http://my/name/space}myOperation1?endpointMapping=#endpointMapping")
from("spring-ws:rootqname:{http://my/name/space}myOperation2?endpointMapping=#endpointMapping")
from("spring-ws:rootqname:{http://my/name/space}myOperation3?endpointMapping=#endpointMapping")
操作通常可以访问多个数据库,并且可能持续几秒钟
它完美无缺,但现在我有了新的要求:必须同步3个操作。
例如:如果client1在client2调用operation1之前1ms调用operation1,则必须在启动client2的调用之前完成client1的调用。
同样适用于调用2个不同操作的1个客户端。
例如:如果client1在调用operation2之前1ms调用operation1,则必须在启动operation2的调用之前完成operation1的调用。客户端异步调用WS并且无法更改
应用程序正在使用WebLogic 10.3.5运行。
将容器线程减少到1只会影响所有操作,因此我考虑只为这3个操作添加一些自定义队列(JMS样式)。
你有更好的主意吗?
答案 0 :(得分:0)
它首先将所有调用放入队列,然后我们可以决定应该调用哪一个。
答案 1 :(得分:0)
ActiveMQ易于设置,可以很好地与Camel配合使用。
首先需要将请求路由到JMS队列,队列本身是事务断点,然后依次使用JMS消息。通过使用消息模式
,您可以更好地控制线程和消息消耗