消息中间件篇之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副本列表。

相关推荐
Bill FANG3 分钟前
从原生Java NIO到Netty重构:充电桩Socket服务端高性能改造实战
java·重构·nio
2601_955759414 分钟前
Claude API 成本审计:该看哪些指标,怎么分析更靠谱
java
带刺的坐椅14 分钟前
跳出 Fatjar 的束缚:Solon 插件的体外扩展(E-Spi)与热插拔(H-Spi)
java·jar·solon·plugin·fatjar
宁之明起(B服)21 分钟前
Java 反序列化漏洞-xmldecoder/SnakeYAM
java·开发语言
禾高网络39 分钟前
开启环保新潮流:回收小程序系统功能介绍
java·大数据·小程序
deviant-ART42 分钟前
java stream 的 findFirst 及 findAny 方法遇到 null 元素时会出现 NullPointerException
java·开发语言
jjjava2.01 小时前
MyBatis动态if/trim/where/set标签详解
java·开发语言·数据库
gugucoding2 小时前
34.【Java】I/O流(下):NIO与文件操作
java·python·nio
tianyu2342 小时前
双指针循环匹配金额——打款记录与账单的自动对账算法
java·算法·双指针循环·匹配金额
YDS8292 小时前
大营销平台 —— 架构解析和抽奖流程串联
java·springboot·ddd