教育培训消费

机构数据分析培训之怎么保证Kafka数据完整

0回复 阅读 23

一、在中如何保证生产者数据不丢失呢?我们把它分为几个部分来讲解:

1)消息生产分为同步模式和异步模式

2)消息确认分为三种状态

A) 0:生产者只负责发送数据

B) 1:某个分区的领导接收数据并给出响应

C) -1:分区的所有副本在收到数据后都会做出响应

3)在同步模式

a)生产者等待10S,如果代理没有给出ack响应,则认为失败。

b)生产者重试3次,如果没有响应,会报错。

4)在异步模式

a)首先将数据保存在生产者缓冲区中。缓冲区大小为20,000。32M

b)如果满足数据阈值或时间阈值的条件之一,则可以发送数据

c)发送的一批数据大小为500条。16Kb

如果代理延迟给出确认并且缓冲区已满。开发人员可以设置是否直接清空缓冲区中的数据

二、如何保证broker端数据不丢失

broker端:

broker端的消息不丢失,其实就是用partition副本机制来保证。

Producer ack -1(all). 能够保证所有的副本都同步好了数据。其中一台机器挂了,并不影响数据的完整性。

第三,如何确保消费者数据不丢失

消费者方面:为了保证数据不丢失,卡夫卡记录了每次消费的抵消值,下次继续消费时,会在上次抵消后继续消费。

而偏移量的信息保存在kafka0.8版本0.8之前的zookeeper中,0.8版本之后的topic中。即使消费者在运行过程中挂机,重启时也会找到offset的值,找到之前消费消息的位置,然后消费。由于每次消耗完消息后都不写入偏移量信息,这种情况可能会造成重复消耗,但不会丢失消息

以上就是关于之怎么保证Kafka数据完整的讲解,如果想了解更多详情,请点击成都加米谷大数据官网吧!、大数据开发培训、数据分析与挖掘,零基础班本月正在招生中,课程大纲及试学视频可联系客服获取!

标签

大数据培训
展开全文
一键安装官方客户端
江城热点及时推送 阅读体验更流畅

值得推荐

首页 版块

和武汉妹子交朋友

了解武汉的窗口

在武汉结婚  买房  装修  旅游  购物

用得意生活app有优惠

立即下载