Zookeeper那些事之初步了解zookeeper知识

        在分布式高并发应用中,普通的锁并不能保存数据的一致性,使得程序访问数据不一致。而zookeeper能够保证可靠的,可扩展的,分布式的,可配置的协调机制来保证数据同一状态。

         Zookeeper中最基础的数据节点为znode,各种znode组合成一个tree,同linux目录结构类似,znode中保存该节点数据,zookeeper通过维持该tree来保存数据的一致性;

        Zookeeper中有四种主要角色,分别为leader,follower,Observer和client。Leader负责进行投票的发起与决议,更新系统状态;Follower用于接收客户端请求并向客户的返回结果,在选举过程中参与投票;Observer可以接收客户端连接,将写请求转发给leader,但是不参与投票,只同步leader状态,Observer主要是为了扩展系统,提高读取速度;client用于发送请求。

      Zookeeper那些事之初步了解zookeeper知识_第1张图片

        ZookeeperServer中参与投票的为follower和leader。Zookeeper中当需要选举leader或者进行写数据时,都需要进行投票,只有超过半数投票赞成才能够进行相关操作。在参与投票过程中,每个server有三种工作状态,looking,leading和following。Looking表示处于选举leader过程中,leading表示该server为leader,following表示该server为follower,接收leader的领导。在zookeeper中引入了watch,用于监控服务器各种状态变化,并能够进行相应的操作;

       Zookeeper设计主要目的是保存 最终一致性,无论client连接到那个server,展示给它的时同一试图;zookeeper保证客户端将在一个时间范围间隔内获得服务器的更新状态或者服务器失效的信息,让更新只能成功或者失败,没有中间状态;保证顺序性,即如果在一台服务器上消息a在消息b前发布,则所以的server上消息a都将在消息b前发布;

你可能感兴趣的:(Zookeeper那些事之初步了解zookeeper知识)