DMLC和并发消费者工作

时间:2015-02-03 10:56:58

标签: activemq messaging spring-jms

DMLC是否为每个并发消费者创建了单独的线程?引擎盖下会发生什么?文档写道:

  

实际的MessageListener执行发生在通过Spring的TaskExecutor抽象创建的异步工作单元中。默认情况下,指定数量的调用程序任务将在启动时创建,根据" concurrentConsumers"设置。

我无法理解这一点,这些任务是否并行执行?如果是,那么这个的默认限制是什么,比如线程数等?

谢谢!

1 个答案:

答案 0 :(得分:0)

是的,每个消费者使用一个单独的线程(从任务执行者获得)。默认情况下,使用SimpleAsyncTaskExecutor并在停止使用者时销毁线程。除了容器的并发设置之外,没有线程限制。

如果注入其他类型的任务执行程序(例如ThreadPoolTaskExecutor),则必须确保它具有足够的可用线程来支持容器的并发设置。容器线程通常是长寿命的。