【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集群整体出现故障,那也会导致数据丢失。
相关推荐
在未来等你2 小时前
Kafka面试精讲 Day 15:跨数据中心复制与灾备
大数据·分布式·面试·kafka·消息队列
Hello.Reader4 小时前
Kafka 设计与实现动机、持久化、效率、生产者/消费者、事务、复制、日志压缩与配额
分布式·kafka
叫我阿柒啊4 小时前
Java全栈开发实战:从基础到微服务的深度解析
java·微服务·kafka·vue3·springboot·jwt·前端开发
失散135 小时前
分布式专题——5 大厂Redis高并发缓存架构实战与性能优化
java·redis·分布式·缓存·架构
AscentStream5 小时前
谙流 ASK 技术解析(二):高性能低延迟
kafka·消息队列
小橘快跑7 小时前
动态控制rabbitmq中的消费者监听的启动和停止
分布式·rabbitmq
在未来等你8 小时前
Elasticsearch面试精讲 Day 15:索引别名与零停机更新
大数据·分布式·elasticsearch·搜索引擎·面试
无名客08 小时前
redis分布式锁为什么采用Lua脚本实现。而不是事务
redis·分布式·lua·事务
在未来等你9 小时前
Elasticsearch面试精讲 Day 12:数据建模与字段类型选择
大数据·分布式·elasticsearch·搜索引擎·面试
a5876910 小时前
消息队列(MQ)初级入门:详解RabbitMQ与Kafka
java·分布式·microsoft·面试·kafka·rabbitmq