【kafka】kafka如何保证数据的可靠性,kafka如何保证数据不丢失

1. Kafka架构:

Producer - Broker - Consumer

回到问题上来,Kafka如何保证数据不丢失,我们先看看Kafka如何保证Producer端数据不丢失: 通过ack机制 + 最小副本数设置+ 生产者重试机制

2. Kafka Producer消息发送ACK机制:

ACK机制:

问个问题:Kafka什么时候会丢失数据?

  1. 情况一,Producer向kafka发送消息的时候,ack设置的是0,(0就是producer向broker发生数据后,不需要ack确认)如果这个时候broker leader节点宕机,这个时候数据在broker leader中还没有存储,也没有同步到broker follower节点中,数据就会丢失。

Producer默认的ack确认值是-1,就是leader接收消息后发生ack确认给producer。

  1. 情况二,Producer向Kafka发生消息的时候,由于Kafka先将数据存储在Block cache中,当cache满了才刷到磁盘上。如果这个时候整个kafka集群整体出现故障,那也会导致数据丢失。
相关推荐
Lansonli4 小时前
大数据Spark(七十二):Transformation转换算子repartition和coalesce使用案例
大数据·分布式·spark
hzk的学习笔记5 小时前
Redisson 的 Watchdog 机制
数据库·redis·分布式·缓存
熙客12 小时前
TiDB:分布式关系型数据库
java·数据库·分布式·tidb
Sirius Wu18 小时前
Rclone实战技巧
分布式
言之。20 小时前
TiDB分布式数据库技术架构概述
数据库·分布式·tidb
老夫的码又出BUG了20 小时前
分布式Web应用场景下存在的Session问题
前端·分布式·后端
杂家20 小时前
Hadoop完全分布式部署(超详细)
大数据·hadoop·分布式
BD_Marathon20 小时前
【Hadoop】hadoop3.3.1完全分布式配置
大数据·hadoop·分布式
Ryan ZX21 小时前
etcd 高可用分布式键值存储
数据库·分布式·etcd
大G的笔记本21 小时前
分布式答案解析
分布式