如何确定春季卡夫卡设置的并发性? [英] How to decide the concurrency to be set in spring kafka?

查看:0
本文介绍了如何确定春季卡夫卡设置的并发性?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用@KafkaListener注释编写一个Kafka使用者,我知道有一种方法可以使用ConCurentKafkaListenerContainerFactory中的方法增加来自不同分区的并发Kafka使用者的数量

e.g. factory.setConcurrency(3);

setconency的Javadoc如下所示:-

并发运行的KafkaMessageListenerContainer的最大数量。将按顺序处理同一分区内的邮件。

现在我的问题是

我有一个包含144个分区的Kafka主题,我们的应用程序需要在这些分区上使用消息,并且有3个应用程序实例正在并行运行。

我想知道如何确定

中需要设置的并发值
ConcurrentKafkaListenerContainerFactory.setconcurrency (<Value>) 

以便我们在消费消息时获得高吞吐量。

我应该使用144/3=48作为并发因子,还是有公式来推导此数字?

推荐答案

是最好的方法是在每个实例中将并发设置为48,这样每个分区都将从使用者组中的唯一线程消耗,而且为了获得高吞吐量,您可以使用Batch listenershigher batch size

另一个最佳选择是运行更多实例,例如14个实例,每个实例的并发级别为10。在这两种方法中,您还需要考虑每个实例的可用CPUhaving over head threads than CPU will not give better performance

从1.1版开始,您可以配置@KafkaListener方法来接收从消费者调查收到的整批消费者记录。要配置监听器容器工厂以创建批处理监听器,可以设置BatchListener属性

这篇关于如何确定春季卡夫卡设置的并发性?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆