一、在中如何保证生产者数据不丢失呢?我们把它分为几个部分来讲解:
2)消息确认分为三种状态
B) 1:某个分区的领导接收数据并给出响应
3)在同步模式下
a)生产者等待10S,如果代理没有给出ack响应,则认为失败。
b)生产者重试3次,如果没有响应,会报错。
4)在异步模式下
a)首先将数据保存在生产者的缓冲区中。缓冲区大小为20,000。32M
c)发送的一批数据大小为500条。16Kb
如果代理延迟给出确认并且缓冲区已满。开发人员可以设置是否直接清空缓冲区中的数据。
二、如何保证broker端数据不丢失
broker端:
broker端的消息不丢失,其实就是用partition副本机制来保证。
Producer ack -1(all). 能够保证所有的副本都同步好了数据。其中一台机器挂了,并不影响数据的完整性。
第三,如何确保消费者数据不丢失
消费者方面:为了保证数据不丢失,卡夫卡记录了每次消费的抵消值,下次继续消费时,会在上次抵消后继续消费。
而偏移量的信息保存在kafka0.8版本0.8之前的zookeeper中,0.8版本之后的topic中。即使消费者在运行过程中挂机,重启时也会找到offset的值,找到之前消费消息的位置,然后消费。由于每次消耗完消息后都不写入偏移量信息,这种情况可能会造成重复消耗,但不会丢失消息。
以上就是关于之怎么保证Kafka数据完整的讲解,如果想了解更多详情,请点击成都加米谷大数据官网吧!、大数据开发培训、数据分析与挖掘,零基础班本月正在招生中,课程大纲及试学视频可联系客服获取!