前言:
Apache Kafka 作为当下最常用消息中间件之一。给到我的需求是需要我们处理大量的消息(如果单线程处理过多消息会出现性能瓶颈)。
如何使用Java的ExecutorService框架来创建线程池处理大量消息?
1.创建一个可以从topic中poll()消息后传递到线程池以进行进一步处理。
2.创建工作线程,以执行每条消息的进一步处理。
1.topic消息传递到ThreadPoolExecutorService
/** kafka 消息处理*/
public class KafkaProcessor {
private final KafkaConsumer<String, String> myConsumer;
private ExecutorService executor;
private static final Properties KAFKA_PROPERTIES = new Properties();
//基础的kafka配置~
static {
KAFKA_PROPERTIES.put("bootstrap.servers", "localhost:9092