【发布时间】:2020-04-01 21:21:26
【问题描述】:
假设Apache Kafka 中有一个包含 3 个分区的主题。我需要在一个消费者组中运行 3 个消费者,根据文档,这意味着每个消费者将从 1 个分区读取数据。
使用Spring Kafka 实现消费者。众所周知,默认情况下,所有消息都在单个线程中接收,但使用ConcurrentMessageListenerContainer 应该允许我们设置并发。
我想要什么?我想有效地使用服务器 CPU 资源,让每个消费者在单独的线程中接收和处理消息(在我们的例子中是 3 个线程,等于分区的数量)。
结果 - 消费者组中有 3 个消费者(3 个服务器),每个消费者从所有 3 个分区接收消息。
有可能吗?如果是的话,如果我只使用ConcurrentMessageListenerContainer并为每个分区指定3个监听器就足够了吗?
【问题讨论】:
-
是的,它是.....
标签: java multithreading apache-kafka spring-kafka