简述zookeeper和ZAB协议

zookeeper为分布式应用提供一个高效可靠的分布式协调服务器。zk通过zab协议来保证zk模式中数据的一致性。

  • zk集群中的任何一台集群都可以响应客户端的读操作
  • zk将所以数据都存储在内存中
  • zk中有三个角色,leader、follower、observer
    • leader是选举出来的角色,具有读写能力
    • follower具有读能力
    • observer只有读的能力,且不参与选举,也不参与过半写成功的策略,可以在不影响写的前提下提高集群读性能

zab协议是为了zk专门设计的一种支持奔溃回复的消息广播协议。

  • 消息广播
    • 只允许一个主进程接受客户事务请求并处理,即leader
    • leader接受请求后,为follower创建一个队列,保证事务顺序性,并按顺序向其他节点广播提案
    • follower接受到消息并本地化以后,向leader发送ack
    • leader收到一半以上follower的响应时,leader提交该提案
  • 故障恢复
    • 当leader出现故障时,进入故障恢复模式,选举出新的leader
    • leader和过半follower进行同步,使数据一致
    • 同步完成以后进入广播模式
    • 非leader节点的写请求会将请求发送到leader服务器
发布了9 篇原创文章 · 获赞 1 · 访问量 3404

猜你喜欢

转载自blog.csdn.net/y1006597541/article/details/101168247