【发布时间】:2020-05-17 17:17:34
【问题描述】:
我正在使用 @KafkaListener 注释编写一个 kafka 消费者,我知道有一种方法可以使用 ConcurrentKafkaListenerContainerFactory 中的方法增加来自不同分区的并发 kafka 消费者的数量
e.g. factory.setConcurrency(3);
用于 setconcurrency 的 Javadoc 是这样说的:-
同时运行的 KafkaMessageListenerContainer 的最大数量。来自同一分区内的消息将按顺序处理。
现在我的问题是
我有一个包含 144 个分区的 kafka 主题,我们的应用程序需要向其消费消息,并且应用程序的 3 个实例并行运行。
我想知道如何决定需要设置的并发值
ConcurrentKafkaListenerContainerFactory.setconcurrency (<Value>)
这样我们可以在消费消息时实现高吞吐量。
我应该使用 144/3 = 48 作为并发因子还是有公式可以得出这个数字?
【问题讨论】:
标签: apache-kafka kafka-consumer-api spring-kafka