apache-activemq-5.8.0,apache-camel-2.12.3
我正在尝试实现并发的jms消息消费。消费者的端点设置了下一个参数:
from(
"lala:queue:testConcurrentConsumers?asyncConsumer=true&concurrentConsumers=5&maxConcurrentConsumers=6")
.process(new Processor() {
@Override
public void process(
final Exchange exchange) throws Exception {
counter.incrementAndGet();
System.out.println("sleep: " + exchange.getIn().getBody());
Thread.sleep(1000);
System.out.println("woke up: " + exchange.getIn().getBody());
}
});
当代理上不存在队列时 - 一切正常,进一步发送的jms消息与5个最多6个消费者线程同时处理
但是如果在启动CamelContext时队列中存在队列,则只创建5个使用者并逐个顺序处理消息(看起来只使用单个线程而不是5-6个线程的线程池)
参数有什么问题?
我在互联网上发现的关于此类问题的唯一看起来类似的事情是http://camel.465427.n5.nabble.com/ActiveMQ-asyncConsumer-problem-td5744405.html