Java 当带有固定线程池的执行器服务与Kafka侦听器一起使用时,线程从队列中删除
当我尝试将executorService(50个固定线程池)与Kafka一起使用时,一些线程被从队列中删除,并且没有得到处理 例如,对于以下代码:日志中打印的行数: “卡夫卡内部听众”:3000 “处理信息”:2100 “发生异常”:0Java 当带有固定线程池的执行器服务与Kafka侦听器一起使用时,线程从队列中删除,java,multithreading,apache-kafka,executorservice,executor,Java,Multithreading,Apache Kafka,Executorservice,Executor,当我尝试将executorService(50个固定线程池)与Kafka一起使用时,一些线程被从队列中删除,并且没有得到处理 例如,对于以下代码:日志中打印的行数: “卡夫卡内部听众”:3000 “处理信息”:2100 “发生异常”:0 我希望日志中的行数相等,因为newFixedThreadPool使用大小为整数的阻塞队列。MAX_VALUE如果将submit更改为execute,您是否会遇到任何不同的行为?我也尝试过执行,行为相同。 @Named public class KafkaList
我希望日志中的行数相等,因为newFixedThreadPool使用大小为
整数的阻塞队列。MAX_VALUE
如果将submit
更改为execute
,您是否会遇到任何不同的行为?我也尝试过执行,行为相同。
@Named
public class KafkaListener {
ExecutorService executorService = Executors.newFixedThreadPool(50);
@Inject
KafkaMessageProcessor kafkaMessageProcessor;
@KafkaListener(
topics = "topicName",
containerFactory = "filterKafkaListenerContainerFactory")
public void listen(String message) {
try {
System.out.println("Inside Kafka Listener " + message);
executorService.submit(() -> {
System.out.println("Processing message");
kafkaMessageProcessor.process(message);
});
} catch (Exception e) {
System.out.println("Exception occurred :" + e);
}
}
}