Kafka高可用机制总结

1. 集群模式

1.1组成结构

Kafka集群由多个broker实例构成,每个broker是一个Kafka实例。

1.2高可用保障

某一台broker宕机时,其他broker仍可对外提供服务,保证了集群的高可用性。但仅回答此点过于简单,需结合分区复制机制回答以更好应对面试官。

2. 分区复制机制初步

2.1分区与副本

  • 一个topic分为多个分区,每个分区有多个副本,且分布在不同broker。如一个topic有三个分区p0、p1、p2,每个分区有三个副本,存储在不同broker。
  • 副本间为主从关系,同一分区的所有副本内容相同。

2.2数据同步方式

  • 生产者按策略将消息存储到不同分区,Kafka内部为分区提供副本机制以保证高可用性。
  • 分区副本分为ISR副本(同步请求方式,数据更完整)和普通副本(异步请求方式,效率高但不能保证数据完整性)。
  • ISR 的全称是 "in sync replica",即 "需要同步复制保存的副本"。在 Kafka 中,ISR 副本在同步数据时采用同步请求方式,能更好地保证数据完整性。

2.3选主原则

Kafka分区副本的选主原则是

  • 先从ISR列表中选择leader副本
  • 当ISR列表中的副本均宕机时,才从普通副本中选择一个作为leader。
  1. 优先从ISR列表选主:ISR副本采用同步请求方式同步数据,数据完整性更好,所以在正常情况下,会优先从ISR列表中挑选leader副本。
  2. ISR列表副本均宕机时的处理 :如果ISR列表中的所有副本都不可用,此时为了保证系统的基本运行,会从普通副本中选择一个作为leader。普通副本采用异步请求方式同步数据,虽然效率较高,但数据完整性不能完全保证。

这种选主原则的设计旨在平衡数据完整性和系统可用性之间的关系,

确保在不同情况下Kafka系统都能尽量稳定运行。

3. ISR配置

3.1可配置性

在broker配置文件中可设定topic副本数量和ISR最少个数,需根据实际情况设置。

3.2设置考量

不能将所有副本设为ISR,因为ISR同步保存数据性能不高,普通副本异步保存数据效率更高。一般至少设置一个ISR列表,其他设为普通副本,以平衡高可用性和数据存储时效性。

4. 面试回答建议

4.1回答框架

从集群和复制机制两个层面回答。集群层面提及由多个broker组成,宕机不影响对外服务;复制机制层面详细阐述分区、副本、副本存储、主从关系、数据同步方式、选主原则等。

4.2应对追问

若面试官追问ISR,需解释ISR是需要同步复制保存的副本,分区副本分为ISR副本(同步请求)和普通副本(异步请求),以及选主原则与ISR的关系等。

相关推荐
zru_96021 小时前
Kafka核心概念深入浅出:消费者组(Consumer Group)机制全解析
kafka
学习中的阿陈4 小时前
Hadoop伪分布式环境配置
大数据·hadoop·分布式
CesareCheung4 小时前
JMeter分布式压力测试
分布式·jmeter·压力测试
thginWalker4 小时前
面试鸭Java八股之Kafka
kafka
失散136 小时前
分布式专题——10.5 ShardingSphere的CosID主键生成框架
java·分布式·架构·分库分表·shadingsphere
winfield8217 小时前
Kafka 线上问题排查完整手册
kafka
Cxzzzzzzzzzz9 小时前
RabbitMQ 在实际开发中的应用场景与实现方案
分布式·rabbitmq
在未来等你10 小时前
Kafka面试精讲 Day 16:生产者性能优化策略
大数据·分布式·面试·kafka·消息队列
王大帅の王同学10 小时前
Thinkphp6接入讯飞星火大模型Spark Lite完全免费的API
大数据·分布式·spark
一氧化二氢.h12 小时前
通俗解释redis高级:redis持久化(RDB持久化、AOF持久化)、redis主从、redis哨兵、redis分片集群
redis·分布式·缓存