zk01

zookeeper基础

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Hadoop和Hbase的重要组件。提供的功能包括:命名服务、 配置管理、集群管理、分布式锁、队列管理。

zookeeper是由文件系统和通知机制组成

官网提供的集群图

    Zookeeper由2n+1台servers组成,每个server都知道彼此的存在。每个server都维护的内存状态镜像以及持久化存储的事务日志和快照。为了保证Leader选举能过得到多数的支持,所以ZooKeeper集群的数量一般为奇数。对于2n+1台server,只要有n+1台(大多数)server可用,整个系统保持可用。所以Zookeeper集群至少需要3台servers服务器!


1、工作机制

   从设计模式来讲,它是一个基于观察者设计的分布式服务管理框架,负责存储和管理有用的数据,然后接受观察者的注册,一旦数据状态发生改变,就通知已经注册的观察者。

2、特点

    1)一个领导者(leader),多个跟随者(follower)

    2)集群需要半数以上的节点存活才能够提供服务(半数机制)

    3)全局数据一致:每个server保存相同的数据副本。

    4)数据更新原子性。

    5)实时性:在一定时间范围内,Client能都到最新数据(更新请求转发,由leader实施)。

3、角色

    在ZooKeeper集群当中,集群中的服务器角色有两种Leader和Learner,Learner角色又分为Observer和Follower,具体功能如下:

    Leader(领导者)为客户端提供读和写的服务,负责投票的发起和决议,更新系统状态。

    Follower(跟随者)为客户端提供读服务,如果是写服务则转发给Leader。在选举过程中参与投票。

    Observe(观察者)为客户端提供读服务器,如果是写服务则转发给Leader。不参与选举过程中的投票,也不参与“过半写成功”策略。在不影响写性能的情况下提升集群的读性能。此角色于zookeeper3.3系列新增的角色。

    client(客户端)连接zookeeper服务器的使用着,请求的发起者。独立于zookeeper服务器集群之外的角色。

3.1、Zookeeper 下 Server工作状态

每个Server在工作过程中有三种状态: 

    LOOKING:当前Server不知道leader是谁,正在搜寻    

    LEADING:当前Server即为选举出来的leader    

    FOLLOWING:leader已经选举出来,当前Server与之同步

你可能感兴趣的:(zk01)