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
相关推荐
数智启示录6 小时前
Apache Kafka Consumer 扩到 40 个仍不提速:Partition 上限锁死有效并行度 【Kafka合集】
数据库·经验分享·分布式·缓存·面试·kafka·apache
数智启示录6 小时前
Apache Kafka 幂等 Producer 的边界:Exactly-Once 到了 MySQL 为什么失效 【Kafka合集】
数据库·经验分享·分布式·mysql·面试·kafka·apache
数智启示录6 小时前
Apache Kafka 不只是消息队列:日志与 Offset 分离如何让事件可重放 【Kafka合集】
经验分享·分布式·面试·kafka·apache
数智启示录6 小时前
Apache Kafka 同 Key 仍会乱序:从分区 Offset 到业务可见的四道边界 【Kafka 合集】
大数据·数据库·经验分享·分布式·面试·kafka·apache
老周聊架构8 小时前
Flink 连接器与生态:Kafka Offset 提交修复与 MySQL Binlog 延迟指标
mysql·flink·kafka
小白羊丨1 天前
Kafka任务重试、退避与失败恢复怎么做?
分布式·kafka
爱三盖浇饭2 天前
挑战从零开始学习Kafka2: Kafka 常见问题解决方案
学习·kafka
山鬼龙王3 天前
吃透 Kafka:一篇讲清楚核心原理和高频考点
kafka
pnoker5 天前
IoT DC3 消息总线:六适配器可插拔设计
物联网·架构·kafka·消息队列·rabbitmq
cxhello5 天前
消费者活着、心跳正常、日志干净,但它七天没拉过一条消息
python·kafka