Open white-shiro-bai opened 3 years ago
不会的,kafka是pull模式,若消费端消费不及时,天然反压形成,不会再加载新数据入消费端。
不会的,kafka是pull模式,若消费端消费不及时,天然反压形成,不会再加载新数据入消费端。
这个有2个情况,一个是误判,是我对故障位置理解的偏差:间歇性数据写入暂停,今天发现是因为数据库那边写的太快了,kafka消费端没及时刷新metadata,造成新数据进不来等待了。连接器上加参数,metadata_max_age_ms= 1 60 1000,把原本5分钟降为1分钟,问题解决。
另一个在等复现,一般出现在流量集中的时候,我们自己不太好模拟,等下一次活动公众投票的时候看能不能复现。之前看就是consumer.py那个内存占用量上去了,kafka一直在消费数据,但是数据库没写完。这个我没找到具体的故障点,平时的话,写不完就不消费了,但是不知道为什么,压力大的时候就能触发写不完也消费。
在个别情况下,kafka消费并不是按照消费进程完成一个,再消费一个新的进行。会造成大量数据入库时,大量进程堆在内存里。尤其数据库卡主时更明显。