kafka丢数据问题方案(转载+整理+汇总)
丢数据可能来自:
息生产者(Producer)、消息消费者(Consumer)和服务载体(在Kafka中用Broker指代)[6]
broker可以理解为类似于队列api一样的东西
[8]提供了一个脑图
----------------------------------------------------------------------------------生产者--------------------------------------------------------------------------------------------------------------------------------------------------
参数设置 | 推荐设置 |
request.required.acks | -1 |
producer.send(msg,callback) |
优先使用producer.send(msg,callback) 带回调方法 而不是producer.send(msg) 不带回调方法 |
retries | MAX |
enable.idempotence |
true |
producer.type | 采用默认的sync值[5] |
-------------------------------------------------------------------------------服务端---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
变量 | 说明 | 推荐设置 |
unclean.leader.election.enable | 这个参数是控制leader replica出问题了以后follower replica竞选leader replica资格的,我们把设置为false,意思就是如果follower replica如果落后leader replica太多就不能参与竞选。 | false |
replication.factor | 这个参数设置的是partition副本的个数,如果我们要想保证数据不丢,这个副本数需要设置成大于1。 | >= 3 |
min.insync.replicas |
这个参数要跟生产者里的acks参数配合使用,当生产者acks=-1时,服务端的ISR列表里的所有副本都写入成功,才会给生产者返回成功的响应。 而min.insync.replicas这个参数就是控制ISR列表的,假设min.insync.replicas=1,这就意味着ISR列表里可以只有一个副本,这个副本就是leader replica,这个时候即使acks设置的是-1,但其实消息只发送到leader replica,以后就返回成功的响应了。 因为ISR只有一个副本,我们知道这种情况是有可能会丢数据的,所以min.insync.replicas这个值需要大于1的(如果ISR列表里面副本的个数小于min.insync.replicas,生产者发送消息是失败的),并且是min.insync.replicas <= replication.factor |
1<min.insync.replicas <=replication.factor |
interval.messages=10000
当达到下面的时间(ms)时,执行一次强制的flush操作。interval.ms和interval.messages无论哪个达到,都会flush。默认3000ms
log.flush.interval.ms=1000
检查是否需要将日志flush的时间间隔
log.flush.scheduler.interval.ms = 3000
设置好消息重试机制
下面根据[11][12]
函数 | 作用 | 对应的设置[12] |
cleanupExpiredSegments | 负责清理过期的日志数据 |
log.retention.hours log.retention.minutes log.retention.ms |
cleanupSegmentsToMaintainSize | 负责清理超过指定容量的日志数据 | log.retention.bytes |
---------------------------------------------------------------------------------------------------------------------消费者------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
变量 | 推荐设置 |
enable.auto.commit | false |
Reference:
[1]kafka中的ISR、AR又代表什么?ISR伸缩又是什么?
[2]Kafka零数据丢失的配置方案
[3]Kafka丢失数据问题优化总结(需要后面再看下)
[4]一步步解决spring-kafka消息丢失(提了下spring版本和kafka驱动版本的匹配log.retention.bytes性)
[5]kafka消息会不会丢失?为什么?看了这个你就清楚了
[6]Kafka源码分析及图解原理之Broker端
[7]kafka消息丢失情况与解决方案
[8]面试官问:Kafka 会不会丢消息?怎么处理的?
[9]Kafka 消息丢失与消费精确一次性
[10]kafka如何防止数据丢失(从生产者/服务器/消费者角度)
[11]Kafka 异常丢失大量数据的解决方案
[12]Kafka清除数据日志详解
kafka丢数据问题方案(转载+整理+汇总)相关推荐
- Kafka丢数据、重复消费、顺序消费的问题
面试官:今天我想问下,你觉得Kafka会丢数据吗? 候选者:嗯,使用Kafka时,有可能会有以下场景会丢消息 候选者:比如说,我们用Producer发消息至Broker的时候,就有可能会丢消息 候选者 ...
- 刨根问底: Kafka 到底会不会丢数据?
阅读本文大约需要 30 分钟. 上一篇作为专题系列的第二篇,从演进的角度带你深度剖析了关于 Kafka 请求处理全流程以及超高并发的网络架构设计的实现细节,今天开启第三篇,我们来聊聊 Kafka 生产 ...
- 刨根问底:Kafka 到底会不会丢数据?
那么 Kafka 到底会不会丢数据呢?如果丢数据,究竟该怎么解决呢? 只有掌握了这些, 我们才能处理好 Kafka 生产级的一些故障,从而更稳定地服务业务. 认真读完这篇文章,我相信你会对Kafka ...
- mysql数据库断电_MySQL 数据库忽然断电会丢数据吗转载
在上一章,我讲解了 MySQL 锁的相关内容.主要谈到了全局锁.表锁.行锁以及死锁等.通过这些学习,相信我们可以理解锁的原理,并在工作中降低锁冲突的概率.这也是优化数据库必须掌握的知识点. 从本节开始 ...
- 大数据面试题及答案 汇总版
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/albg_boy/article/det ...
- udp怎么保证不丢包_在 Flink 算子中使用多线程如何保证不丢数据?
分析痛点 笔者线上有一个 Flink 任务消费 Kafka 数据,将数据转换后,在 Flink 的 Sink 算子内部调用第三方 api 将数据上报到第三方的数据分析平台.这里使用批量同步 api,即 ...
- 树莓派 cuda加速_机器人梦系列-树莓派资源整理汇总
链接地址:https://segmentfault.com/a/1190000021776077 (相关下载资源) 本文收集了树莓派使用过程中经常需要用到的资源,主要包括树莓派系统镜像.树莓派硬件介绍 ...
- 利用rfcomm实现树莓派与手机通信_树莓派资源整理汇总(2020年2月18日更新)
本文收集了树莓派使用过程中经常需要用到的资源,主要包括树莓派系统镜像.树莓派硬件介绍.树莓派GPIO引脚编号.树莓派电路原理图下载.树莓派应用.树莓派工具等等,非常值得收藏. 一.快速上手 树莓派快速 ...
- 数据中心布线方法问答汇总
[导读]本文为大家分享数据中心布线方法问答汇总,希望对大家有所帮助. 数据中心布线方法问答汇总1 1.问:关于跨长距离的网线施工问题,在单位遇到这种情况,办公大楼太宽,而internet接入点又在大楼 ...
最新文章
- java gstripe_通过Stripe Connect进行交易
- 全球及中国智能电网产业十四五规划方向及投资决策建议报告2021年版
- 2018年7月份,python上传自己的包库到pypi官网的方法
- 富士康工业互联:生产口罩优先用于内部防疫 预计对经营业绩影响较小
- 电脑太慢了最简单的办法怎么弄_电脑感染病毒的10种症状及简单处理办法 电脑中病毒的症状介绍...
- python turtle画简单树_大家用Python-turtle库作图画出过哪些漂亮的树哇 ?
- 8. jQuery 效果 - 动画
- R语言报错:Error in scan
- Python数据分析——matplotlib折线图和散点图
- C语言——设置flag的优点
- win7系统启动到一半停止_win7系统装到一半电脑死机怎么办
- 加州大学洛杉机分校计算机科学,加州大学洛杉矶分校计算机科学排名第14(2020年TFE美国排名)...
- Android帧动画分析
- Liunx 安装redis
- PDF - 使用 Adobe Acrobat 压缩 PDF 大小
- 51单片机——人体红外感应报警
- Python读取tsv文件
- 5G NR 系统消息
- 学生DW静态网页设计——html+css+javascript+jquery+bootstarp马尔代夫旅游响应式网站
- 【Arduino+ESP32专题】一起来读INA3221数据手册 1