目录
- QuorumVerifier
- 数据结构
- 构造函数
- containsQuorum()
- SyncedLearnerTracker
- 功能
QuorumVerifier
QuorumVerifier用于保存集群选举服务器信息以及选举期间判断投票是否过半,它的创建过程如下:
默认创建的是它的实现类QuorumMaj
数据结构
构造函数
从参数读取server.
开头的信息创建QuorumServer,每一个QuorumServer代表集群中的一个服务器,它的数据结构以及构造函数如下:
containsQuorum()
QuorumVerifier中用于判断过半的方法是containsQuorum()
SyncedLearnerTracker
在选举Leader的时候,SyncedLearnerTracker用来判断推举的Leader是否拥有足够的票数,它的构造函数如下:
功能
在判断投票是否过半的时候会先调用addQuorumVerifier()
方法添加QuorumVerifier,在收到投票信息的时候会调用addAck()
方法保存投票,然后调用hasAllQuorums()
判断是否获取过半的票数,如果过半则选举成功,否则继续选举投票。