代码之家  ›  专栏  ›  技术社区  ›  nemisis enforcer

Apache Camel多端口JMS侦听器

  •  2
  • nemisis enforcer  · 技术社区  · 10 年前

    我正在与apache camel合作,可能需要一些我无法解决的问题。我希望在一个JMS队列上有多个端口侦听器。

    我有一个如下的骆驼上下文配置

    <route id="customerDataRoute" autoStartup="false">
    <from uri="activemq:customer.data"/>
    <to uri="dataListener"/>
    <choice>
    ...
    

    我希望在customer.data队列上有多个程序侦听器,但我不确定我是否正确设置了它,或者它只是一个我无法确定的配置选项。我可以启动一个实例,但只能得到一个监听器。

    任何帮助都将得到极大的通知!! 谢谢

    1 回复  |  直到 10 年前
        1
  •  2
  •   matt helliwell    10 年前

    你有两个选择,我可以想到:

    • 定义多个路由,所有路由都侦听同一队列。如果你想让不同的听众出于某种原因做不同的事情,这是很好的。
    • 一种更正常的方式是将并发消费者定义为不止一个。看见 http://camel.apache.org/competing-consumers.html

    在这种情况下,将从多个线程调用一个dataListener,因此必须确保其线程安全。