「这是我参与2022首次更文挑战的第13天,活动详情查看:2022首次更文挑战」。
-
如何处理replica恢复
(1). 第一点说的是指提交m1
(2). 第二点说的是leaderA挂了,B做Leader,同步到m2
(3). 再来个数据m5
(4). A回来了,会去先同步之前的信息。
-
如何处理replica全部宕机
默认是第一个恢复的replica作为leader
-
-
深入学习kafka的高可用设计:、
-
选举算法:ISR ISR列表存在zookeeper上 选举leader的基本原则是:如果leader不在了,新的leader必须拥有原来的leader的所有commit过的消息。在这些follwer中选一个。
-
如何确认follwer是否跟上了leader呢? replica.lag.max.message 落后的消息个数 relica.lag.time.max.ms 多长时间没有去fetch leader的数据
-
commit的选择,要么异步要么同步,但是他折中了。
-
ISR中至少需要一个replica
-
面试问题:
-
Kafka 选主怎么做的? 要说多一点,kafka在zookeeper中维护了一个ISR队列,包含leader和follwer,follwer会间隔时间的主动拉取leader的数据,如果一致的话,那么这份数据就是commit状态,而我们选择主应该是去ISR列表中寻找和宕机的leader commit数据一样的follwer。
-
zookeeper选举是怎么实现的呢? 投票数大于半数则胜出的机制。 一些概念: myid是一个服务器的id,id越大在投票中的算法中权重越大,是在配置集群的时候配置的。 数据id:是服务器中存放最新数据版本号,数字越大说明数据越新,选举过程中权重也就越大。 逻辑时钟:就是这台机器参与投票的次数。 选举机制有分为第一次全新选举,非全新选举
- 全新选举,每个节点给自己投票,然后广播自己的投票信息给其他服务器,进行交换比较,在其他服务器中确定胜出的结果,然后投票给胜出的服务器。如果胜出的数量超过一半,那么就是他获胜了,后面进来的服务器不会再参与选举。
-