zookeeper

zookeeper的容错性:有服务器宕机,剩下个数必须大于宕机的个数才能正常使用,2n和2n-1的容忍度是一样的,所以3台只允许宕机1台,4台也只允许宕机一台,容错性是一样的。
zookeeper本身就是一个分布式系统,半数节点以上存活,zookeeper正常服务
    为了保证高可用,通常以集群的方式
    数据基于内存,保证高吞吐量和低延迟
    读多写少的场景是高性能的
    临时节点与会话保持一致
    管理用户提交的数据,并能提供监听

  • session:zk客户端与服务器会话,一个tcp长连接有一个会话,通过心跳检测保持会话,还能接受watcher的事件通知,sessionTimeout时间内能重连会话依旧有效,sessionId全局唯一。
  • zNode:类似linux文件系统,持久节点和临时节点。节点有一个特殊的属性:SEQUENTIAL.节点被创建的时候,Zookeeper会自动在其节点名后面追加上一个整型数字,这个整型数字是一个由父节点维护的自增数字。
  • version:会为其维护一个叫作 Stat的数据结构,记录了这个ZNode的三个数据版本,分别是version(当前ZNode的版本)、cversion(当前ZNode子节点的版本)和 aversion(当前ZNode的ACL版本)。
  • watcher:用户在节点上注册Watcher,并且在一些特定事件触发的时候,ZooKeeper服务端会将事件通知到感兴趣的客户端上去,该机制是Zookeeper实现分布式协调服务的重要特性。
  • acl:AccessControlLists策略来进行权限控制,类似于UNIX文件系统的权限控制。Zookeeper定义了如下5种权限。创建、删除、读、写、管理权限

zk特点:

  • 顺序一致性:顺序访问zxid zookeeper transaction id,同一客户端发起的事务请求,严格顺序应用zk上
  • 高性能:简单数据模型,基于内存
  • 原子性:
  • 单一系统映像:每个节点的数据都是一样的
  • 可靠性:可构建集群、更改是终态

zookeeper角色
leader                事务唯一调度和处理,保证顺序性
learner follower    处理非事务请求,转发事务到leader,参与事务请求投票,参与选举投票
            obserer        同上,不参与投票和选举,可以增加读性能
client

leader出现网络中断、崩溃、退出、重启等异常情况,ZAB协议进入恢复模式开始选举新的leader
1.选举:只要有一个节点超半数,他就被当选leader
2.发现:follower跟准leader通讯,同步最近接受的事务提议
3.同步:利用前一阶段获得的最新提议历史,同步以后leader转正
4.广播:此阶段可对外提供服务,可进行广播

ZAB(ZooKeeper Atomic Broadcast)为ZK专门设计的一种支持崩溃恢复的原子广播协议,基于该协议,ZooKeeper 实现了一种主备模式的系统架构来保持集群中各个副本之间的数据一致性。
崩溃恢复和消息广播
崩溃恢复就是1和2:所谓的状态同步是指数据同步,用来保证集群中存在过半的机器能够和Leader服务器的数据状态保持一致。
消息广播就是3和4


https://dbaplus.cn/news-141-1875-1.html


Paxos世界上只有一种分布式协同算法
http://codemacro.com/2014/10/15/explain-poxos/


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值