为什么当队列不为空时,apache camel不会同时使用jms消息

时间:2014-05-12 19:38:14

标签: jms apache-camel

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

0 个答案:

没有答案