我对 Camel 很陌生,所以如果这很明显,请原谅。
我们正在尝试建立一条 Camel 路线(在 talend esb 中),它执行以下操作:
这一切都在一条路线上。
我发现该路由在等待 3 中的回复时不再接受 1. 中的任何消息。
我曾尝试在 JMS 组件上使用“asyncConsumer”参数,但这没有帮助。
我如何设计路由,以便它可以在仍在等待 3 中的回复时处理第二个(和更多)消息。?
谢谢,
拉奇
最佳答案
Petter 解释的参数会有所帮助,但您仍然会阻塞线程。另一种方法是将集成设计为两条独立的路线。在您收到 jms 消息的第一个路由中,更新数据库并发送第二个消息。
如果您在此路由的生产者上使用 InOnly 并设置 JMSReplyTo 以及 preserveMessageQuo=true 那么 Camel 将发送消息但不等待回复。
然后您使用第二个路由监听您指定的队列的回复并执行第二个数据库更新。这样您就不会阻塞任何线程。
关于jms - Camel jms 请求/回复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13857294/