我使用带有 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,则 client1 的调用必须在 client2 的调用之前完成。
同样适用于 1 个客户端调用 2 个不同的操作。
例如:如果 client1 在调用 operation2 之前 1ms 调用 operation1,则 operation1 的调用必须在 operation2 的调用之前完成。客户端异步调用 WS 且无法更改
该应用程序使用 WebLogic 10.3.5 运行。
将容器线程减少到 1 只会影响所有操作,因此我正在考虑仅在这 3 个操作中添加一些自定义队列(JMS 样式)。
你有更好的主意吗?