同一个Group的所有消费端实例,分区消费时间相差较大、滞后明显或乱序。
现象
在云消息队列 Kafka 版控制台的Group 管理页面,单击目标Group,在Group 详情的消费状态页签单击目标Topic操作列的消费详情。某分区的最大位点比其他分区大,说明分区早于其他分区收到来自Producer的消息。
原因
同一个Group的所有消费端实例,会按分区均匀分配。在此条件下,消费的消息是否均匀,取决于客户的Producer在发送消息时,发送消息对各个分区是否均匀:
如果消费端个数N可以整除12(默认分区个数),那么分区对消费端的分配就是均匀的。
如果消费端个数N不能整除12(默认分区个数),那么有的消费端处理的分区个数会比其他消费端大。
假设有5个消费端和12个分区,那么会有2个消费端每个消费3个分区,而余下的3个消费端只消费2个分区。消费的速度主要取决于消费端(您的客户端)的处理性能。如果处理性能完全一样,在此条件下分配到的分区个数多1的消费端,消费可能会稍慢。
说明包年包月、按小时后付费实例的默认分区个数是12,Serverless实例默认分区个数是3。
解决方案
保证消费端个数N整除实例的默认分区个数。
文档内容是否对您有帮助?