IT袋

当前位置:主页 > 经验教程 > 建站编程 >

zookeeper详解

zookeeper详解 深入解析Zookeeper(4)

时间:2024-01-16 13:59:56 来源:IT袋 作者:马勇
导读:zookeeper详解,Zookeeper集群 Zookeeper的集群中有哪些角色 主要有以下角色: Leader(领导者):负责进行投票的发起和决议,更新系统状态。为客户端提供读和写服务。 Follo

zookeeper详解

Zookeeper集群

Zookeeper的集群中有哪些角色

主要有以下角色:

  • Leader(领导者):负责进行投票的发起和决议,更新系统状态。为客户端提供读和写服务。
  • Follower(跟随着):用于接收客户端请求并响应客户端返回结果,在选主过程中参与投票,为客户端提供读服务。
  • Observer(观察者):可以接手客户端的连接,将写请求转发给Leader,但Observer不参与投票过程,只同步Leader的状态,Observer的目的时为了扩展系统,提高读取速度。
  • Client(客户端):请求发起方

Zookeeper集群选举的原理

ZAB 协议&Paxos算法

  • Paxos算法

Paxos算法时莱斯利·兰伯特于1990年提出的一种基于消息传递且具有高度容错性的一致性算法。在基于传递通信模型的分布式系统,不可避免地会发生以下错误:进程可能会慢、被杀死或重启,消息可能会延迟、丢失、重复。Paxos算法可解决分布式系统中如何就某个值达成一致,保证不论发生以上任何异常,都不会破坏一致性。是至今为止唯一的分布式一致性算法,Paxos前提是没有拜占庭将军问题,就是Paxos只有在一个可信的计算环境中才能成立。

  • ZAB 协议

ZAB协议是为分布式协调服务zookeeper专门设计地一种支持崩溃恢复地原子广播协议,是Zookeeper保证数据一致性地核心算法。ZAB借鉴了Paxos算法,但又不像Paxos算法那样,是一种通用的分布式一致性算法,相比Paxos,ZAB最大的特点就是保证强一致性。

ZAB协议包括两种基本的模式:崩溃恢复和消息广播。Zookeeper的核心是通过ZAB协议保证了各个Server之间的同步。当服务启动或者在Leader崩溃后,ZAB就进入了恢复模式,当领导者被选举出来,且大多数Server完成了和Leader的状态同步之后,恢复模式就结束了。状态同步保证了Leader和Server具有相同的系统状态。

ZAB协议于Paxos算法的联系与区别

ZAB协议提交事务提案的过程跟Paxos有点类似,都是由Leader发送给下面的Follower,让Follower进行投票表决,都是超过半数以上才会通过。

但是ZAB协议比Paxos多的是崩溃恢复模式,也就是Leader崩溃时,能够自我恢复。

所以ZAB协议跟Paxos算法最主要的区别就是:两个设计的目标不同,ZAB协议主要用于构建一个高可用的分布式数据的主备系统,因为有崩溃恢复,Leader崩溃能够重新选举,达到一个高可用的目的。

而Paxos算法目的在于构建一个分布式数据一致性系统,强调的是数据的一致性,当Proposer提议者崩溃时不能自我恢复,从而丢失高可用的功能

Zookeeper选举

相关阅读

  • OSPF点对多点非广播网络类型特点以及工作原理

    OSPF点对多点非广播网络类型特点以及工作原理

    本文导读:OSPF点对多点非广播网络类型特点以及工作原理的相关知识,接下来分享详细内容。 特点 点对多点非广播网络类型适用于一个路由器与多个其他路由器直接相连的情况,并且不支持

  • 减少数据中心网络拥塞的6种方法 优化数据中心网络减少拥塞的6种策略

    减少数据中心网络拥塞的6种方法 优化数据中心网络减少拥塞的6种策略

    小编为大家讲一讲减少数据中心网络拥塞的6种方法方面的讲解,下面IT袋网为您详细介绍 数据中心网络的拥塞问题对于网络性能和用户体验至关重要。 为了解决这个问题,我们可以采取一系列

  • 什么是堡垒机 有哪些特点?

    什么是堡垒机 有哪些特点?

    小编为大家说一说什么是堡垒机的话题,下面为详细的介绍。 堡垒机(Bastion Host)是一种位于内部网络和外部网络之间的中间服务器,用于控制和监管对内部服务器的访问。 它充当了一座“堡

  • 什么是FTP服务器? 如何配置和运行FTP服务器教程

    什么是FTP服务器? 如何配置和运行FTP服务器教程

    一篇方法教程,与您分享什么是FTP服务器方面的内容,接下来分享详细内容。 FTP服务器是一个用于在网络上存储和传输文件的服务器。FTP是File Transfer Protocol(文件传输协议)的缩写,是一个基