kafka在生产环境中出现的数据丢失问题大汇总

Kafka数据丢失汇总

在大数据的领域中,数据显得尤其的重要。在每一个组件、每一个步骤中,我们都要对数据进行妥善的处理、保护,才能得到更有说服力、有意义的数据。

所以数据丢失,就成为了一件非常严重的事情;所以在我们的生产环境中,防止数据丢失就显得尤其重要。

第1章 

Kafka作为我们消息队列的中间件,基于订阅和发布的消息队列;解除生产者(消息源)和消费者(数据接收处)的耦合关系,消除某时段数据传输速度高峰值,启动一个缓冲的作用。

Kafka以时间复杂度O(1)的方式提供消息持久化能力,即使应对TB级以上数据也能保证一定时间的访问性能。

Kafka具有高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100k条消息的传输。

支持Kafka Server间的消息分区,及分布式消费,同时保证每个partition内的消息顺序传输。

Kafka同时支持离线数据处理和实时数据处理。

那么这样一个可靠的组件,也会发生数据丢失。那么针对这一问题,我们来对其多方位的进行分析。

第2章 如何发现问题

(1)是否多人在操作生产环境

(2)接收数据处有无数据

(3)反常现象:比如电商项目中双十一数据量正常来说会比之前高很多,但是却和平常日期数据量相似或者数据量还要少。

(4)如果生产者端丢失数据,那么每次结果应该完全一样;如果不一样,生产者端便出了问题。

(5)如果消费者端丢失数据,那么每次消费结果完全一样的几率很低。

第3章 问题所在

根据实际生产环境发生的Kafka数据丢失现象,我做了如下汇总。

3.1 多客户端操作问题

发生这种问题,不是真正的发生了数据丢失;我们的大数据开发环境中,是必须支持多客户端开发的,多人使用数据,那么会有几率造成,两人甚至多人同时操控一份数据。这就比如有同事操作了测试环境,动用了你本来要用的数据,所以你无法找到了你的数据,便认为发生了数据丢失。

3.2 组件流程问题

并不是真正Kafka发生了数据丢失,而是Kafka上游段或者下游段发生了数据丢失,比如上游段连接Flume组件,Flume发生了数据丢失,表现为Kafka内数据不全或者没有数据,之后认为Kafka发生了数据丢失;再或者Kafka下游连接Flume组件,Flume发生数据丢失,数据没有传输到HDFS上,导致HDFS无法找到数据,从而猜测Kafka数据丢失。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值