DMLC是否为每个并发消费者创建了单独的线程?引擎盖下会发生什么?文档写道:
实际的MessageListener执行发生在通过Spring的TaskExecutor抽象创建的异步工作单元中。默认情况下,指定数量的调用程序任务将在启动时创建,根据" concurrentConsumers"设置。
我无法理解这一点,这些任务是否并行执行?如果是,那么这个的默认限制是什么,比如线程数等?
谢谢!
答案 0 :(得分:0)
是的,每个消费者使用一个单独的线程(从任务执行者获得)。默认情况下,使用SimpleAsyncTaskExecutor
并在停止使用者时销毁线程。除了容器的并发设置之外,没有线程限制。
如果注入其他类型的任务执行程序(例如ThreadPoolTaskExecutor
),则必须确保它具有足够的可用线程来支持容器的并发设置。容器线程通常是长寿命的。