Kafka如何保证高可用

Kafka如何保证高可用

Kafka

kafka是一个多分区、多副本且基于zookeeper协调的分布式消息系统。也是一个分布式流式处理平台,它以高吞吐、可持久化、可水平扩展、支持流数据处理等多种特性而被广泛使用。

副本机制

在集群中,每个分区都可以有多个副本,这些副本中包含了一个Leader和多个Follower,只有Leader才能处理生产者和消费者的请求,而Follower只是Leader的备份,用于提供数据的冗余备份和容错能力。如果Leader发生故障,Kafka集群会自动将Follower提升为新的Leader。

ISR(In-Sync Replicas)机制

  • 在Kafka中,每个主题分区可以有多个副本,ISR是与主副本保持同步的副本集合,只有ISR内的副本才有资格参与Leader的选举。
  • 当消息被写入到Kafka的分区时,它首先会被写入Leader,然后将消息复制给ISR中的所有副本。只有当ISR中的所有副本都成功接收并确认消息之后,主副本才会认为消息已成功提交。
  • Follower需在replica.lag.time.max.ms时间内与Leader保持同步,否则会被移出ISR

Leader选举与故障恢复

  • 当Leader宕机时,Controller会从ISR中选举新Leader,选举通过Zookeeper协调完成
  • 原Leader恢复后作为Follower重新同步数据并加入ISR
相关推荐
2301_801184755 小时前
kafka-zookeeper
分布式·zookeeper·kafka
Devin~Y5 小时前
抖音级短视频推荐与直播带货平台面试实战:从 Java 微服务到 RAG 智能客服全链路解析
java·spring boot·redis·spring cloud·kafka·agent·rag
livemetee8 小时前
关于【Kafka高可用配置】
分布式·kafka
TTBIGDATA8 小时前
【Ambari Plus】11.Kafka 安装
大数据·hadoop·分布式·kafka·ambari·hdp·ambari plus
rebibabo1 天前
Java基础(番外) | Kafka 入门:分区、副本与消费者组原理
java·分布式·kafka·学习笔记·副本·分区·异步日志
swg3213211 天前
Kafka基于ZK和KRaft的设计原理与差异
分布式·kafka
阿里云云原生6 天前
数据链路再精简:Kafka 如何做到“零 ETL”一键写入 Apache Iceberg?
kafka
阿里云云原生12 天前
告别冗长链路!Kafka × Table Bucket 实现开放表格式零 ETL 实时入湖
云原生·kafka
whaledown18 天前
Kafka 与 Java 消息队列入门:用订单场景理解核心机制
java·kafka·消息队列·springboot
guslegend18 天前
第1章:初始Kafka
分布式·kafka