kafka 如何避免重复消费
为什么会出现重复消费
1、kafka是通过offset来标记消费的。默认情况下,消费完成后会自动提交offset,避免重复消费。
Kafka消费端的自动提交逻辑有一个默认的5秒间隔,也就是说在5秒之后的下一次向Broker拉取消息的时候提交。
所以在Consumer消费的过程中,应用程序被强制kill掉或者宕机,可能会导致Offset没提交,从而产生重复提交的问题。
2、Kafka里面有一个Partition Balance机制,就是把多个Partition均衡的分配给多个消费者。
Consumer端会从分配的Partition里面去消费消息,如果Consumer在默认的5分钟内没办法处理完这一批消息。
就会触发Kafka的Rebalance机制,从而导致Offset自动提交失败。
而在重新Rebalance之后,Consumer还是会从之前没提交的Offset位置开始消费,也会导致消息重复消费的问题。
如何避免
1、提高消费端的处理性能避免触发Balance,比如可以用异步的方式来处理消息,缩短单个消息消费的市场。或者还可以调整消息处理的超时时间。还可以减少一次性从Broker上拉取数据的条数。
2、可以针对消息生成md5然后保存到mysql或者redis里面,在处理消息之前先去mysql或者redis里面判断是否已经消费过。这个方案其实就是利用幂等性的思想。
kafka 如何避免重复消费相关推荐
- Kafka 心跳机制 重复消费
kafka 心跳机制 Kafka是通过心跳机制来控制消费超时,心跳机制对于消费者客户端来说是无感的,它是一个异步线程,当我们启动一个消费者实例时,心跳线程就开始工作了.心跳超时会导致消息重复消费. 在 ...
- 什么?搞不定Kafka重复消费?
来自:架构之美 前言 今天我们聊一个话题,这个话题大家可能在面试过程中,或者是工作当中经常遇到 ????如何保证 Kafka 消息不重复消费?我们在做开发的时候为了程序的健壮性,在使用 Kafka 的 ...
- 三张表有重复字段_什么?搞不定Kafka重复消费?
点戳蓝字"架构之美"关注我们哦! 前言 今天我们聊一个话题,这个话题大家可能在面试过程中,或者是工作当中经常遇到 ?如何保证 Kafka 消息不重复消费?我们在做开发的时候为了程序 ...
- kafka 重复消费和数据丢失_刨根问底,Kafka消息中间件到底会不会丢消息
大型互联网公司一般都会要求消息传递最大限度的不丢失,比如用户服务给代金券服务发送一个消息,如果消息丢失会造成用户未收到应得的代金券,最终用户会投诉. 为避免上面类似情况的发生,除了做好补偿措施,更应该 ...
- 【消息队列】kafka是如何保证消息不被重复消费的
一.kafka自带的消费机制 kafka有个offset的概念,当每个消息被写进去后,都有一个offset,代表他的序号,然后consumer消费该数据之后,隔一段时间,会把自己消费过的消息的offs ...
- kafka rebalance与数据重复消费问题
问题和现象: 某个程序在消费kafka数据时,总是重复消费相关数据,仿佛在数据消费完毕之后,没有提交相应的偏移量.然而在程序中设置了自动提交:enable.auto.commit为true 检查日志, ...
- kafka一直rebalance故障,重复消费
今天我司线上kafka消息代理出现错误日志,异常rebalance,而且平均间隔2到3分钟就会rebalance一次,分析日志发现比较严重.错误日志如下 08-09 11:01:11 131 pool ...
- kafka重复消费问题
开篇提示:kafka重复消费的根本原因就是"数据消费了,但是offset没更新"!而我们要探究一般什么情况下会导致offset没更新? 今天查看Elasticsearch索引的时候 ...
- MQ问题集(kafka主从同步与高可用,MQ重复消费、幂等)
1.kafka主从同步与高可用 https://1028826685.iteye.com/blog/2354570 http://developer.51cto.com/art/201808/5815 ...
最新文章
- selenium 无法定位打开a链接_测试干货 :Selenium8种元素定位法
- Python_序列对象内置方法详解_String
- android double比较大小吗,Android双向选择控件DoubleSeekBar使用详解
- append在python里是什么意思_“一棵绿萝七个鬼”是什么意思?卧室里到底能不能养绿萝!...
- windows linux mysql_linux/windows环境mysql数据库安装与使用
- 我的Java设计模式-单例模式
- QTreeWidget样式qss
- 关于android RTP驱动的问题
- 摄影测量(一):概述
- 详解win7升级win10原来的软件还能用吗
- UnityVR-初识Unity-实践-制作一个工程场景
- AtCoder Beginner Contest 162 D.RGB Triplets
- Swift是花拳绣腿吗?——谈谈开发语言与程序员的职业发展
- 哔哩哔哩自动播放视频
- 区块链技术应用于链接智慧医疗
- 第三阶段:Web前端:02数据库(sql语言、JDBC数据库连接) | 03(1)SpringBoot
- javascript 实现在线多币种汇率实时换算
- 【TCP长连接】使用TCP长连接提升服务性能
- c语言期末复习专项——编程题
- python列表去括号_python 去括号