25.12. 并发消耗
JMS 的常见要求是在多个线程中同时使用消息,以便应用响应更迅速。您可以设置 并发Consumers
选项来指定为 JMS 端点提供服务的线程数量,如下所示:
from("jms:SomeQueue?concurrentConsumers=20"). bean(MyClass.class);
您可以使用以下方法之一配置这个选项:
-
在
JmsComponent
上, - 或在端点 URI 上,
-
通过直接在
JmsEndpoint
上调用setConcurrentConsumers()
。
25.12.1. 使用 async 消费者进行并发恢复
请注意,当当前消息被完全处理时,每个并发消费者只会从 JMS 代理中选择下一个可用消息。您可以将选项 asyncConsumer=true
设置为使消费者从 JMS 队列获取下一个消息,而上一消息则异步处理(异步路由引擎)。有关 asyncConsumer
选项的信息,请参阅页顶部的详情。
from("jms:SomeQueue?concurrentConsumers=20&asyncConsumer=true"). bean(MyClass.class);