我需要一种使用来自多个activemq jms队列的消息的方法。

根据activemq文档,它支持wildcard consumers

我使用 Camel 作为消息传递总线。是否可以在下面的命名队列中查看

aaa.processQueue
bbb.processQueue
ccc.processQueue

通过配置 Camel 路线来查看activemq:*.processQueue端点?

还请让我知道,是否有更清洁的替代方法。

最佳答案

是的。由于Camel正在使用OpenWire/JMS客户端,因此应该可行。

您的选择是:

  • from("activemq:*.processQueue")
  • from("activemq:aaa.processQueue,bbb.processQueue,ccc.processQueue")
  • 具有逻辑子路由的多条路由:
    from("activemq:aaa.processQueue").to("direct:doProcess");
    from("activemq:bbb.processQueue").to("direct:doProcess");
    from("activemq:ccc.processQueue").to("direct:doProcess");
    
    from("direct:doProcess").whatever..
    

    这样,您就可以轻松地打开/关闭路由,并为一个路由分配更多的使用者,因为您需要对aaa.processQueue消息比其他消息拥有更高的优先级。
  • 10-07 13:57