栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

zookeeper

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zookeeper

尚硅谷笔记

paxos算法

paxos算法:基于消息传递且具有高度容错性的一 种算法,是目前公认的解决分布式-致性问题最有效的算法
解决问题:在分布式系统中,如果产生宕机或者网络异常情况,快速的正确的在集群内部对某个数据的值达成-致,并且不管发生任何异常,都不会破坏整个系的一致性
重要概念:半数原则:少数服从多数

leader选举机制:

三个核心选举原则:
(1) zookeeper集群中只有超过了半数以上的服务器启动,集群才能正常工作
(2)在集群正常工作之前,myid小的服务器会给myid大的服务器进行投票,持续到集群正常 工作,选出leader
(3)选择leader之 后,之前的服务器状态由looking改变为following,以后的服务器都是follower

启动过程-选举

简单例子来介绍整个选举过程:
假设现在有五台服务器,组成了zookeeper集群,五台服务器它们的myid从1-5,而且它们都是最新启动,没有历史数据。
假设服务器启动从id 1-5的顺序启动
因为一共五台服务器,只有超过半数以上,也就是最少启动三台服务器,集群才能正常工作。

崩溃-选举

zookeeper 两种模式 恢复模式

当服务启动或领导崩溃后,zk进入恢复状态,选举leader,leader选出后,将完成leader和其他机
器的数据同步,当大多数server完成和leader的同步后,恢复模式结束

广播模式


一旦进入广播模式,集群中非leader节点接受到事务请求,首先会将事务请求转发给服务器,leader服务器为其生成对应的事务提案proposal,并发送给集群中其他节点,如果过半则事务提交;
图:

  • leader 接受到消息后,消息通过全局唯一的64位自增事务id,zxid标识
  • leader 发送给follower的提案是有序的,leader会创建一个FIFO队列,将提案顺序写入队列中发送给follower
  • follower 接受到提案后,会比较提案zxid和本地事务日志最大的zxid,若提案zxid比本地事务id大,将提案记录到本地日志中,反馈ack给leader,否则拒绝
  • leader 接收到过半ack后,leader向所有的follower发送commit,通知每个follower执行本地事务
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/964745.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号