white-shiro-bai / ghost_sa

open_server for sensorsdata ghost_sa(鬼策)的用途是接收 神策SDK 上报的埋点数据,移动广告监测,站外阅读监测,短链创建与解析,反爬,接入控制与管理,用户分群与召回等功能
325 stars 78 forks source link

kafka消费量控制不了 #25

Open white-shiro-bai opened 3 years ago

white-shiro-bai commented 3 years ago

在个别情况下,kafka消费并不是按照消费进程完成一个,再消费一个新的进行。会造成大量数据入库时,大量进程堆在内存里。尤其数据库卡主时更明显。

phillip2019 commented 3 years ago

不会的,kafka是pull模式,若消费端消费不及时,天然反压形成,不会再加载新数据入消费端。

white-shiro-bai commented 3 years ago

不会的,kafka是pull模式,若消费端消费不及时,天然反压形成,不会再加载新数据入消费端。

这个有2个情况,一个是误判,是我对故障位置理解的偏差:间歇性数据写入暂停,今天发现是因为数据库那边写的太快了,kafka消费端没及时刷新metadata,造成新数据进不来等待了。连接器上加参数,metadata_max_age_ms= 1 60 1000,把原本5分钟降为1分钟,问题解决。

另一个在等复现,一般出现在流量集中的时候,我们自己不太好模拟,等下一次活动公众投票的时候看能不能复现。之前看就是consumer.py那个内存占用量上去了,kafka一直在消费数据,但是数据库没写完。这个我没找到具体的故障点,平时的话,写不完就不消费了,但是不知道为什么,压力大的时候就能触发写不完也消费。