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
相关推荐
我不会起名字3223 小时前
Kafka 分区数到底设几个:吞吐量、顺序性与 rebalance 代价的取舍
kafka·消息队列·调优·分区
starzy199010 小时前
深度拆解 Kafka 源码:Producer 构造器装配了哪些核心组件
分布式·kafka
我不会起名字32210 小时前
Go 写 Kafka 消费者:sarama 的 3 个坑与优雅退出写法
kafka·消息队列·go·sarama
RobinXYuan2 天前
【Kafka 源码手记】02 Kafka 的核心哲学:Everything Is A Log
kafka·源码阅读
Sayai2 天前
Kafka 2.8→3.9.1 跨大版本升级实战:ZooKeeper 同步升级、数据目录迁移与回滚预案全流程
大数据·运维·分布式·zookeeper·kafka
guo_wen_qiang4 天前
kafka重复消费
分布式·kafka
ClouGence5 天前
开源数据库管理工具 CloudDM 4.4.0 发布,新增 Kafka、SAP HANA 数据源
数据库·kafka
RobinXYuan5 天前
【Kafka 源码手记】01 从消息队列到 Event Streaming
kafka·源码阅读
nvd116 天前
深入剖析:GCP Pub/Sub 与 Apache Kafka 对消息处理延迟与消费者卡死的处理机制异同
分布式·kafka·apache
笔墨登场说说7 天前
centos 8 使用 kafka_2.13-4.3.1.tgz 安装kafka
linux·kafka·centos