2019独角兽企业重金招聘Python工程师标准>>>

数据丢失为大事,针对数据丢失的问题我们排查结果如下。
第一:是否存在数据丢失的问题?
    存在,且已重现。

第二:是在什么地方丢失的数据,是否是YDB的问题?
    数据丢失是在导入阶段,数据并没有写入到Kafka里面,所以YDB也就不会从Kafka里面消费到缺失的数据,数据丢失与延云YDB无关。

第三:是如何发现有数据丢失?
    1.测试数据会一共创建365个分区,每个分区均是9亿数据,如果最终每个分区还是9亿(多一条少一条均不行),则数据完整。
    2.测试开始第二天,开始有丢失数据的现象,且丢失的数据越来越多。

第四:如何定位到是写入端丢失数据的,而不是YDB消费丢失数据的?
    kafka支持数据的重新回放的功能(换个消费group),我们清空了ydb的所有数据,重新用kafka回放了原先的数据。
    如果是在ydb消费端丢失数据,那么第二遍回放数据的结果,跟第一次消费的数据在条数上肯定会有区别,完全一模一样的几率很低。
    数据回放结果为:与第一次回放结果完全一样,可以确认为写入段丢失。

第五:写入kafka数据为什么会丢失?
    导入数据我们采用的为kafka给的官方的默认示例,官方默认并没有处理网络负载很高或者磁盘很忙写入失败的情况(网上遇到同类问题的也很多)
    一旦网络中断或者磁盘负载很高导致的写入失败,并没有自动重试重发消息。
    而我们之前的测试,
    第1次测试是在共享集群环境上做的测试,由于有其他任务的影响,网络与负载很不稳定,就会导致数据丢失。
    第2次测试是在独立集群,并没有其他任务干预,但是我们导入程序与kafka不在一台机器上,而我们又没有做限速处理(每小时导入5亿条数据)
    千兆网卡的流量常态在600~800M左右,如果此时突然又索引合并,瞬间的网络跑满是很正常的,丢包也是很正常的。
    延云之前持续压了20多天,确实一条数据没有丢失,究其原因是导入程序与kafka在同一个机器上,且启用了限速。

第六:这个问题如何解决?
    官方给出的默认示例并不可靠,并没有考虑到网络繁忙的情况,并不适合生产。
    故kafka一定要配置上消息重试的机制,并且重试的时间间隔一定要长一些,默认1秒钟并不符合生产环境(网络中断时间有可能超过1秒)。
    延云认为,增加如下参数会较大幅度的减少kafka写入数据照成的数据丢失,在公司实测,目前还没遇到数据丢失的情况。
         props.put("compression.type", "gzip");
         props.put("linger.ms", "50");
         props.put("acks", "all");
         props.put("retries ", 30);
         props.put("reconnect.backoff.ms ", 20000);
         props.put("retry.backoff.ms", 20000);

转载于:https://my.oschina.net/ifraincoat/blog/1617787

记一次kafka数据丢失问题的排查相关推荐

  1. Kafka 数据丢失与优化

    目录 Kafka数据丢失与解决方案 Kafka在什么情况下会丢失数据? broker发生丢失数据分为下面几类 consumer发生丢失数据分为下面几类 Kafka性能调优 producer需注意 br ...

  2. 记一次服务器负载飙高排查过程

    记一次服务器负载飙高排查过程 问题描述 在前天呢,我们公司的三台部署着php项目的线上服务器A.B.C,其中一台服务器A出现了CPU负载飙高,与其他两台服务器相差好几倍,并且在前天之前都没有出现过这么 ...

  3. 转:记一次linux oom内存溢出排查过程

    @转:记一次linux oom内存溢出排查过程 记一次linux oom内存溢出排查过程 2018年08月16日 14:13:49 enchanterblue 阅读数 4099更多 分类专栏: --- ...

  4. kafka数据丢失总结

    数据丢失是一件非常严重的事情事,针对数据丢失的问题我们需要有明确的思路来确定问题所在,针对这段时间的总结,我个人面对kafka 数据丢失问题的解决思路如下: 是否真正的存在数据丢失问题,比如有很多时候 ...

  5. 记一次kafka集群频繁crash的排查过程

    01 概述 kafka集群中的某些broker会随机重启,并且重启没有什么规律.broker重启对于client端使用层面是无感知的,但是在数据一致性.稳定性方面存在风险.broker重启时,连接在这 ...

  6. 记一次Kafka warning排查过程

    1.前因 在配合测试某个需求的时候,正好看到控制台打印了个报错,如下: 2023-03-06 17:05:58,565[325651ms][pool-28-thread-1][org.apache.k ...

  7. 实战派:一次kafka卡顿事故排查过程!

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 等你归去来 来源 | www.cnblogs. ...

  8. 干货!一次kafka卡顿事故排查过程

    由于一次功能上线后,导致某数据量急剧下滑,给我们紧张的呢!排查过程也是个学习过程!抛开结果,方法论可供参考- 1. 确认问题的真实性? 被数据部门告知,某数据量下滑严重,当时即知道问题的严重性.且该问 ...

  9. 记一次内存泄漏问题的排查经历

    源宝导读:随着系统越来越庞大,越来越复杂,疑难杂症问题也越来越多.本文将介绍明源研发协同平台团队针对一次内存泄露问题的排查过程和技术探索. 一.背景 内存泄漏,一个说大不大说下不小的瑕疵.作为开发者, ...

最新文章

  1. Microsoft Enterprise Library 5.0 系列(八) Unity Dependency Injection and Interception
  2. Vista下硬盘管理
  3. 记一次JavaNIO重复读消费
  4. Qt学习笔记-----QListWidget,QTableWidget和QTreeWidget
  5. 你不知道LinkedList中的方法
  6. TikZ绘图示例——尺规作图: 圆内接正七边形的近似画法
  7. tomcat端口被占用了怎么办
  8. 如何在Ubuntu 14.10 上安装WordPress?
  9. 如何在虚拟机上安装wsus服务器,如何在Hyper-V虚拟机上安装WSUS服务器技巧_Hyper-V...
  10. mui的实例项目源码_Spring Boot 2.x 启动全过程源码分析
  11. MSIL实用指南-一维数组的操作
  12. 泛微mysql密码_泛微OA 数据库维护笔记(e-cology)
  13. AI 研究助力体育分析
  14. NAT技术与代理服务器详解
  15. 二级分销系统平台软件开发
  16. 无心剑汉英双语诗003. 《书海》
  17. 数据库原理及应用-李唯唯主编-实验3-2
  18. vue使用外部字体文件
  19. 准标准模式和标准模式之间的差别-1(旧文首发)
  20. python更复杂的输出格式

热门文章

  1. 记一次用WPScan辅助渗透WordPress站点
  2. React引入,运行
  3. IOS9.0 导航栏状态栏
  4. 用计算器计算“异或CRC”
  5. 后台设置 datakeynames
  6. 计算机应用基础126题,2015-2016年全国计算机应用基础总复习.
  7. mysql周报内容范文_Mysql各种报表查询含实例,日报,周报,月报,时间差自动计算...
  8. WIFI配网方式(AP模式、Smartconfig等模式)
  9. -9 逆序输出一个整数的各位数字_【每日算法】基础算法——归并排序[求逆序对的数量](四)(思想很经典)...
  10. eclipse中文乱码解决_解决git status显示中文文件名乱码问题