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

相关推荐
万岳科技程序员小金12 小时前
在线教育系统源码选型对比:PHP、Java、Flutter、UniApp谁更适合?
java·uni-app·php·软件开发·在线教育系统源码·教育app开发·教育软件开发
EB_Coder12 小时前
前端面试题-JavaScript中级篇
前端·javascript·面试
hazhanglvfang12 小时前
使用curl测试java后端post接口
java·开发语言
世界尽头与你12 小时前
Hadoop 未授权访问漏洞
大数据·hadoop·分布式
雨中飘荡的记忆12 小时前
设计模式之建造者模式详解
java·设计模式·建造者模式
雨中飘荡的记忆12 小时前
StepBuilder模式详解
java·建造者模式
通义灵码12 小时前
Java 后端开发工程师使用 Qoder 实现面向 API 的运维平台前端开发
java·运维·状态模式
路边草随风12 小时前
flink 1.18 cdc 2.4.2 读 mysql binlog 写 kafka jar版本依赖
mysql·flink·kafka
-大头.12 小时前
Spring消息集成:从企业模式到云原生
java·spring·云原生
杀死那个蝈坦12 小时前
Redis 缓存预热
java·开发语言·青少年编程·kotlin·lua