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
相关推荐
承悦赋1 天前
微服务通信:5大消息队列横向对比
微服务·架构·kafka·rabbitmq·rocketmq
西红柿维生素1 天前
zk管理kafka&kafka-broker通信
分布式·kafka
Hello.Reader1 天前
用 Flink Table API 打造实时交易看板从 Kafka 到 MySQL 再到 Grafana
mysql·flink·kafka
失散131 天前
分布式专题——20 Kafka快速入门
java·分布式·云原生·架构·kafka
程序员三明治1 天前
Linux安装Kafka(无Zookeeper模式)保姆级教程,云服务器安装部署,Windows内存不够可以看看
linux·zookeeper·kafka
在未来等你2 天前
Kafka面试精讲 Day 20:集群监控与性能评估
大数据·分布式·面试·kafka·消息队列
云闲不收2 天前
RocketMQ基础以及和 Kafka 有什么区别
分布式·kafka·rocketmq
AutoMQ2 天前
AutoMQ x Lightstreamer: Kafka 金融数据实时分发新方案
分布式·金融·kafka
Code88482 天前
[从青铜到王者] Spring Boot+Redis+Kafka电商场景面试全解析
spring boot·redis·微服务·kafka·java面试·电商架构
BullSmall2 天前
Kafka 图形界面客户端工具
笔记·kafka