learner既不能称为leader,也不参与投票,只是同步数据,但可以手工提升为follower。
假如是3副本(算上learner就是4副本),那主中心两个voter,从中心一个voter和一个learner,当dr-replicas=1时,commit group设置为3,所有voter数据一致,当主中心异常时需要手工介入,这时从中心的Follower变成了leader,可以将learner提升为Follower,这时从中心就有了2个voter,保证了raft协议的大多数原则,可以对外提供服务。
假如是5副本(算上learner就是6副本),那主中心三个voter,从中心两个voter和一个learner,当dr-replicas=1时,commit group设置为5,所有voter数据一致,当主中心异常时需要手工介入,这时从中心的其中一个Follower变成了leader,可以将learner提升为Follower,这时从中心就有了3个voter,保证了raft协议的大多数原则,可以对外提供服务。
1 个赞