![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
kafka
zhanggonglalala
这个作者很懒,什么都没留下…
展开
-
消费一条kafka消息的时间过长,导致消息丢失过期
问题先简述一下为什么我们会出现这样的情况:我们消费kafka数据时,每消费一条做的操作比较多,比如减少调用三方接口、连表查询等,这样会导致消费一条数据的速度比较慢。当上游数据产生大量消息(比如刷数据等),就会产生消息堆积,消费不及时,kafka数据有过期时间,一些数据就丢失了。怎么定位的问题呢?我们查看丢失数据的那个时间的消费日志,发现消费的消息是两天前的,也就是说17号还在消费15号的数据。经验1、消费kafka消息时,应该尽量减少每次消费时间,可通过减少调用三方接口、读库等操作,从而原创 2020-07-24 12:15:17 · 3050 阅读 · 1 评论 -
kafka消费时,同时消费多条数据导致更新失败
记录一次项目中遇到的问题。我们项目消费kafka的逻辑大致如下:if(消息存在){ update(消息);}else{ add(消息);}消息包括消息来源操作时间、操作类型(add/insert)、消息来源表名、消息来源表主键,业务字段等。我们这个表要求”消息来源表名+消息来源表主键“唯一。但存在当一条消息的update和add数据同时过来,打到不同机器上进行消费...原创 2020-03-18 12:28:18 · 1270 阅读 · 0 评论 -
数据丢失与重复消费的解决方案
如何发现数据丢失为了确保consumer消费的数据一定是接着上一次consumer消费的数据,consumer消费时,记录本次取出的第一条数据,将其offset和上次consumer最后消费的offset进行对比,如果相同则继续消费。如果不同,则停止消费,检查原因。如果是单台服务器,记录到本地文件即可,但一般业务场景都是多台服务器,这时通常使用zookeeper。但即使这样也有可能发生消息丢失...原创 2019-11-21 16:45:03 · 464 阅读 · 0 评论