角色定义
leader
一个集群内只有1个leader,leader由选举产生。
leader的职责:
1) 接收follow转发过来的写请求,生成递增的zxid;
2)将写请求原子广播到各个follower;
3)写数据,广播超过一半以上写成功则说明写成功。
ps. 一般情况下leader也负责接收客户端读请求。 可以通过参数禁止此功能。
follow
follow的职责:
1)接收客户端的读请求;
2)定期心跳探测leader的存活状态;
3)投票选举leader;
4)将写请求转发给leader