面试二十四、分布式一致性算法
1、raft
少数服从多数,选票先到先得、票数多为leader
过程:
1)a,b,c参与选举,各自发出自己选举请求
2)a先收b的选举请求投票给b,再收到c的选举投票因为只能投一票,于是不投c
3)这时c也先收到b的选举请求投票给b,再收到a的选举投票因为只能投一票,于是不投a
4)其它节点同样逻辑
5)选票最多者为leader,其它节点为follower
6)follower会定时发送心跳到leader,检查leader是否存活重新选举
7)任值时间到触发重新选举
优点:选举算法简单,速度快
缺点:需要所有节点俩俩通信
2、zab
少数服从多数,zxid大的说明数据越新优先,zxid相同serverId大的优先
过程:
1)假设a的serverId=1,zxid=1;b的serverId=2,zxid=1;c的serverId=2,zxid=1
2)a,b,c参与选举,各自发出投票,投自己为leader
3)zxId相同,看serverId,c最大
4)a和b节点将投票改为c
5)c票数大于一半当选为leader,其它节点为follower
6)follower会定时发送心跳到leader,检查leader是否存活重新选举
缺点:选举时间长
优点:稳定
posted on 2021-09-04 21:16 Iversonstear 阅读(91) 评论(0) 编辑 收藏 举报