消费一条kafka消息的时间过长,导致消息丢失过期

问题

先简述一下为什么我们会出现这样的情况:

我们消费kafka数据时,每消费一条做的操作比较多,比如减少调用三方接口、连表查询等,这样会导致消费一条数据的速度比较慢。当上游数据产生大量消息(比如刷数据等),就会产生消息堆积,消费不及时,kafka数据有过期时间,一些数据就丢失了。

怎么定位的问题呢?我们查看丢失数据的那个时间的消费日志,发现消费的消息是两天前的,也就是说17号还在消费15号的数据。

经验

1、消费kafka消息时,应该尽量减少每次消费时间,可通过减少调用三方接口、读库等操作,从而减少消息堆积的可能性。
2、如果消息来不及消费,可以先存在数据库中,然后逐条消费(还可以保存消费记录,方便定位问题)

3、每次接受kafka消息时,先打印出日志,包括消息产生的时间戳。

那个…消费数据处处是坑,还是得通过实际经验来积累,我会不断踩坑不断更新的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值