记一次kafka数据丢失问题的排查

本文记录了一次关于Kafka数据丢失的排查过程,确定数据丢失发生在写入阶段,而非YDB消费端。通过数据回放确认是由于网络中断或磁盘负载高导致的写入失败。解决方案是配置Kafka消息重试机制,增加参数如`compression.type`, `linger.ms`, `acks`, `retries`, `reconnect.backoff.ms`和`retry.backoff.ms`,以降低数据丢失风险。" 123032466,9755911,CentOS 7.3 安装PHP详细教程,"['centos', 'php', '服务器']
摘要由CSDN通过智能技术生成
数据丢失为大事,针对数据丢失的问题我们排查结果如下。
第一:是否存在数据丢失的问题?
    存在,且已重现。

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

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

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

第五:写入kafka数据为什么会丢失?
    导入数据我们采用的为kafka给的 官方的默认示例,官方默认并没有处理网络负载很高或者磁盘很忙写入失败的情况(网上遇到同类问题的也很多)
    一旦网络中断或者磁盘负载很高导致的写入失败&#
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值