Java 当带有固定线程池的执行器服务与Kafka侦听器一起使用时,线程从队列中删除

Java 当带有固定线程池的执行器服务与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

当我尝试将executorService(50个固定线程池)与Kafka一起使用时,一些线程被从队列中删除,并且没有得到处理

例如,对于以下代码:日志中打印的行数: “卡夫卡内部听众”:3000 “处理信息”:2100 “发生异常”:0


我希望日志中的行数相等,因为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);
        }
    }
}