当前位置:   article > 正文

【分布式协调服务】--zookeeper实现原理

【分布式协调服务】--zookeeper实现原理

一、分布式协调机制引用的场景

  1. 各个节点的数据一致性
  2. 保证任务只在一个节点上执行
    最小节点(最先注册的节点)拿到执行权了之后,其他节点便没有权利执行。
  3. 如果一个节点挂了,怎么保证其他节点立刻知晓,并接替任务。
  4. 存在共享资源,互斥性,安全性如何保证。

二、zookeeper的设计

  1. 防止单点故障
    集群方案(leader,follower).还能分担请求
  2. 每个节点的数据是一致的(必须要有leader)
    leader,master;
  3. leader选举机制,数据恢复
  4. 如何保证数据一致性?(分布式事务)

改进版本的2PC协议

结论:

  1. zab来实现选举:
    集群内选举leader来调度简化集群的复杂度,
  2. 为什么要做集群:
    保证zookeeper协调工具的高性能和高可用(热备,同步)
  3. 2pc做数据一致性:
    引入了协调者(leader)和参与者(follower)的概念,具体见下方。

三、zookeeper集群

改进版的2PC事务:

  1. follower:处理读请求,转发写请求给leader
  2. leader接收到事务请求后会转发提议给集群中的每一个节点(observer除外)
  3. follwer节点收到提议后响应,返回ack
  4. leader收到过半节点响应ack,便会提交事务(commit),给客户端一个response。反之会执行回滚。
  5. 事务提交后会同步给Observer

3种角色特性:

  • leader:集群的核心,起到了主导整个集群的作用,事务请求的调度和处理。
  • follower:处理客户端的非事务请求,转发事务请求,参与事务的投票过程,参与leader选举投票
  • observer:观察者角色&
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号