【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集群整体出现故障,那也会导致数据丢失。
相关推荐
xbhog19 分钟前
Java大厂面试突击:从Spring Boot自动配置到Kafka分区策略实战解析
spring boot·kafka·mybatis·java面试·分布式架构
码熔burning3 小时前
【MQ篇】RabbitMQ之消息持久化!
java·分布式·rabbitmq·mq
南客先生3 小时前
深入解析:RocketMQ、RabbitMQ和Kafka的区别与使用场景
java·kafka·消息队列·rabbitmq·rocketmq
Gvemis⁹3 小时前
Spark总结
大数据·分布式·spark
码熔burning4 小时前
【MQ篇】RabbitMQ之消费失败重试!
java·分布式·rabbitmq·mq
咦!一只菜鸡5 小时前
idea连接远程服务器kafka
分布式·学习·kafka
〆、风神5 小时前
从零实现分布式WebSocket组件:设计模式深度实践指南
分布式·websocket·设计模式
凉白开3386 小时前
spark总结
大数据·分布式·spark
等雨季6 小时前
Spark总结
大数据·分布式·spark
xυlai6 小时前
Spark-Streaming
大数据·分布式·spark