消息中间件篇之Kafka-高可用机制

一、 集群模式

  1. Kafka的服务器端由被称为Broker的服务进程构成,即一个Kafka集群由多个Broker组成。

  2. 这样如果集群中某一台机器宕机,其他机器上的 Broker 也依然能够对外提供服务。这其实就是 Kafka 提供高可用的手段之一。

二、分区备份机制

  1. 一个topic有多个分区,每个分区有多个副本,其中有一个leader,其余的是follower,副本存储在不同的broker中。

  2. 所有的分区副本的内容是都是相同的,如果leader发生故障时,会自动将其中一个follower提升为leader。

三、ISR

ISR(in-sync replica)需要同步复制保存的follower。

如果leader失效后,需要选出新的leader,选举的原则如下:

第一:选举时优先从ISR中选定,因为这个列表中follower的数据是与leader同步的。

第二:如果ISR列表中的follower都不行了,就只能从其他follower中选取。

四、面试题

面试官:Kafka的高可用机制有了解过嘛?

候选人:嗯,主要是有两个层面,第一个是集群,第二个是提供了复制机制。

kafka集群指的是由多个broker实例组成,即使某一台宕机,也不耽误其他broker继续对外提供服务。

复制机制是可以保证kafka的高可用的,一个topic有多个分区,每个分区有多个副本,有一个leader,其余的是follower,副本存储在不同的broker中;所有的分区副本的内容是都是相同的,如果leader发生故障时,会自动将其中一个follower提升为leader,保证了系统的容错性、高可用性。

面试官:解释一下复制机制中的ISR?

候选人:ISR的意思是in-sync replica,就是需要同步复制保存的follower。

其中分区副本有很多的follower,分为了两类,一个是ISR,与leader副本同步保存数据,另外一个普通的副本,是异步同步数据,当leader挂掉之后,会优先从ISR副本列表中选取一个作leader,因为ISR是同步保存数据,数据更加的完整一些,所以优先选择ISR副本列表。

相关推荐
Fate_I_C6 分钟前
Kotlin 内部类和嵌套类
java·开发语言·kotlin
We་ct21 分钟前
JS手撕:函数进阶 & 设计模式解析
开发语言·前端·javascript·设计模式·面试·前端框架
宸津-代码粉碎机27 分钟前
Spring Boot 4.0 实战技巧全解析
java·大数据·spring boot·后端·python
Makoto_Kimur28 分钟前
Java Scanner 的 ACM 常用输入模板
java·数据结构·算法
0xDevNull32 分钟前
Spring 核心教程:@Component vs @Bean 深度解析
java·后端
逆境不可逃33 分钟前
【后端新手谈09】深入浅出短链接:从原理到实战开发
算法·面试·职场和发展
小碗羊肉35 分钟前
【从零开始学Java | 第三十二篇】方法引用(Method Reference)
java·开发语言
墨北小七35 分钟前
小说大模型的分布式训练——张量并行架构设计与实现
分布式
yuki_uix37 分钟前
当 reduce 遇到二维数据:从"聚合直觉"到"复合 Map"的思维跃迁
前端·javascript·面试
我叫黑大帅40 分钟前
Vue3中的computed 与 watch 的区别
前端·javascript·面试