我们有一个大约40个主题的Kafka实现,每个主题都有40个分区和3个复制。我们在Kafka设置中有7个经纪人和40个消费者。所有节点(适用于代理和消费者)均具有合理的配置,托管和AWS,我们几乎看不到任何计算机出现峰值。但是以某种方式,我们发现尽管增加了40个用户来满足上述设置的读取要求,但用户延迟仍然很高。尽管有这样一个事实,对于上述主题,我们每秒仅接收大约215条消息(每个消息的大小约为2KB)。尝试了所有可能的方法,但我们无法解决滞后问题。
我们还看到,消费者大多数时候都闲着,偶尔消费消息。 40个消费者是否足以应付上述情况(40个主题和40个分区,每个主题每秒接收大约215条消息(430 K)消息?
答案 0 :(得分:0)
不清楚您指定了哪个组ID或将哪个主题分配给哪个使用者。
假设所有使用者都在阅读所有主题(您订阅了模式.*
),那么您就错过了1560个可以具有专用使用者实例的分区(集群中40 * 40个分区-40个)现有的“活动”使用者线程)。
由于使用者一次只能读取一个分区,因此不能一次读取一个给定主题的所有分区,所以我觉得您需要添加更多的使用者,最好是分布在多个应用程序实例/机器上。