jms - Camel jms 请求/回复

标签 jms apache-camel

我对 Camel 很陌生,所以如果这很明显,请原谅。

我们正在尝试建立一条 Camel 路线(在 talend esb 中),它执行以下操作:

  • 通过 JMS 接收消息
  • 数据库更新
  • 使用请求/回复通过 JMS 将消息发送到另一个系统
  • 使用回复中的信息再做一次数据库更新

  • 这一切都在一条路线上。
    我发现该路由在等待 3 中的回复时不再接受 1. 中的任何消息。

    我曾尝试在 JMS 组件上使用“asyncConsumer”参数,但这没有帮助。

    我如何设计路由,以便它可以在仍在等待 3 中的回复时处理第二个(和更多)消息。?

    谢谢,
    拉奇

    最佳答案

    Petter 解释的参数会有所帮助,但您仍然会阻塞线程。另一种方法是将集成设计为两条独立的路线。在您收到 jms 消息的第一个路由中,更新数据库并发送第二个消息。

    如果您在此路由的生产者上使用 InOnly 并设置 JMSReplyTo 以及 preserveMessageQuo=true 那么 Camel 将发送消息但不等待回复。

    然后您使用第二个路由监听您指定的队列的回复并执行第二个数据库更新。这样您就不会阻塞任何线程。

    关于jms - Camel jms 请求/回复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13857294/

    相关文章:

    java - 并发处理-JMS

    jms - 我们可以在发布/订阅消息传递中使用请求/回复模型吗?

    java - ServiceMix和 Camel : How do I create routes?

    mysql - Camel Blueprint为准备好的sql语句指定参数

    java - Apache Camel Spring Ws 配置中的 PropertyAccessException

    Spring JMS - 如何定义连接代理

    java - 如何为 servlet 请求提供 X 秒内返回的语义?

    jms - 列出 jboss 7.1.1 上 hornetmq 队列中的消息

    java - 如何在 Camel 路由 XML 中检索交换属性?

    apache-camel - InOut是否将out消息反馈给消费者或生产者?