1、在搭建实时数据平台的时候,用到的是OGG + kafka的模式,目前阶段想先测试6张百万大表来测试效率和延迟情况。数据高峰期一般集中在每天的下午1点到4点,每张表大概会在20分钟内通过OGG同步过来60到80w的数据。因为要考虑每张表的顺序问题,因此在设计的时候,是每张表一个topic并且都是单分区。
之前在测试环境测试的时候,数据高峰期也是1点到4点,数据量大概40w到60w,有出现1张表的消费延迟但是基本没出现过数据堆积的问题,但是最近把代码部署到准生产环境后,前3天正常,未出现消费延迟和堆积的问题,但是到了第四天,发现有张表数据消费不动了堆积了很严重,然后就发现消费速率下降了,其他表也都出现不同程度的堆积,并且每天都越堆积越多,给人感觉是消费不动,求帮助这个怎么解决。
2、测试环境配置,单机,2core8G,准生产,双机(1台机子2个brokers,另一个一个broker),4core,8G
3、在第四天发现数据堆积的时候,堆积了12个小时的时候,程序有报一个 ,poll() expired,please reduce max.poll.records or improve max.poll.interval.ms
,所以我就增加了max.poll.interval.ms
后重启了程序,结果触发了rebalance,然后消费依旧很慢而且感觉越来越慢。
你触发rebalance,说明你拉取消息之后,处理的时间超过了
max.poll.interval.ms
默认30秒。那么你消费慢的原因是你
处理速度跟不上
。想测试以上的推论很简单,你拉取到消息之后,什么都不要处理,看看是否稳定。
你消费越来越慢,也是因为
你的处理写的有问题
,可以想象一下,kafka一次把1000~2000条消息一次性的拉取过来了,这个时候你在处理的时候,超过了30秒,所以触发了rebalance,你加大max.poll.interval.ms
只会缓解这个症状(参考:https://www.orchome.com/6742)。所以,总结下来,就是你处理的速度跟不上,想要根治并且报障安全的话:
你的答案