【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集群整体出现故障,那也会导致数据丢失。
相关推荐
DemonAvenger4 天前
Kafka性能调优:从参数配置到硬件选择的全方位指南
性能优化·kafka·消息队列
初次攀爬者4 天前
ZooKeeper 实现分布式锁的两种方式
分布式·后端·zookeeper
yumgpkpm5 天前
AI视频生成:Wan 2.2(阿里通义万相)在华为昇腾下的部署?
人工智能·hadoop·elasticsearch·zookeeper·flink·kafka·cloudera
予枫的编程笔记5 天前
【Kafka高级篇】避开Kafka原生重试坑,Java业务端自建DLQ体系,让消息不丢失、不积压
java·kafka·死信队列·消息中间件·消息重试·dlq·java业务开发
倚肆5 天前
在 Windows Docker 中安装 Kafka 并映射 Windows 端口
docker·kafka
断手当码农5 天前
Redis 实现分布式锁的三种方式
数据库·redis·分布式
Sheffield5 天前
如果把ZooKeeper按字面意思比作动物园管理员……
elasticsearch·zookeeper·kafka
初次攀爬者5 天前
Redis分布式锁实现的三种方式-基于setnx,lua脚本和Redisson
redis·分布式·后端
雪碧聊技术5 天前
kafka的下载、安装、启动
kafka