面试二十四、分布式一致性算法

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编辑  收藏  举报

导航