我的一些Kafka消费者(但不是全部)对他们的滞后表现出有趣的模式。
下图显示了两个很好的示例:
深蓝色:
在主题中大约每秒200条消息
32个分区
组中有1个使用者(python客户端,在kubernetes上运行)
浅蓝色(与深蓝色主题相同):
因此,在主题中,每秒大约有200条消息
还有32个分区
组中有1个使用者(也是一个python客户机,运行在kubernetes上)
棕色:
在topic中大约每秒1500条消息
40个隔板
组中有2个使用者(java/spring客户端,在kubernetes上运行)
两个sawtooth客户机都可以处理比这大得多的吞吐量(通过暂停、恢复并让它们跟上测试),因此它们没有达到自己的极限。
重新平衡有时确实会发生(根据日志),但比图表中的跳跃次数要少得多,而且少数事件也与跳跃时间不相关。
消息也不是成批发送的。以下是受影响主题之一的附加信息:
这种模式从何而来?
1条答案
按热度按时间iugsix8n1#
刚发现低频锯齿波图案不是真的。这个解释很有意思
当我使用命令行检查消费者延迟时(
kafka-consumer-groups --bootstrap-server=[...] --group [...] --describe
),我看到总消费者滞后(每个分区滞后的总和)波动非常快。一度是6000左右,2秒后是1000左右,2秒后可能是9000。然而,显示的图表似乎是基于较低频率的采样,这违反了奈奎斯特-香农采样定理。所以平均值不起作用,我们看到了云纹é 图案。
结论:锯齿形图案只是一种错觉。
为了完整起见,下面是一个模拟,描述了效果: