zookeeper

https://www.cnblogs.com/felixzh/p/5869212.htmlhtml

https://www.w3cschool.cn/zookeeper/zookeeper_overview.htmlnode

1、zookeeper定义linux

zookeeper是一个针对大型分布式系统的可靠协调系统。服务器

1.1 它的功能包括:配置维护,名字服务,分布式同步、组服务等。数据结构

1.2 它的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。分布式

 

 

2、zookeeper的特色性能

一、 最终一致性:为客户端展现同一视图。server

二、可靠性:若是一条消息被一台服务器接受,那么它将被全部服务器接受。htm

三、实时性:zookeeper不能保证两个客户端同事获得刚刚更新的数据,若是须要更新数据,应该在读数据以前调用sync()接口。blog

四、等待无关(wait-free):慢的或者失效的client不干预快速的client的请求。

五、原子性:更新操做要么成功,要么失败,没有中间状态。

六、顺序性:对于全部server,同一消息发布顺序一致。

3、zookeeper角色

4、leader选举

一、leader选举采用paxos协议

二、paxos核心思想是:当多数server写成功,那么数据则写入成功。

     若是有3个服务器,那么有两个写入成功,则数据写入成功。

     若是有4个或者5个服务器,有3个写成功,则数据写成功。

三、server数量通常为奇数,如三、五、7等。

     若是有3个服务器,最多容许1个挂掉。

     若是有4个服务器,最多一样容许3个挂掉。

四、zookeeper 的写入操做。

5、zookeeper数据模型。

一、zookeeper  提供一个层次化目录结构,命名规范符合常规linux文件目录命名规范。

二、每一个节点在zookeeper中叫作znode,而且有一个惟一的路径标识。

三、znode有两种数据结构,短暂的(ephemeral)和持久的(persistent),节点包含数据和子节点。

四、znode数据包含多个版本。

五、客户端能够在节点上设置监视器(watch)。

六、znode不支持部分读写,须要一次性所有执行完成。

七、znode类型在建立时肯定,并不能修改。

八、znode有四种类型目录节点,persistent, persistent_sequential,  ephemeal,  ephemeal_sequential

 

6、zookeeper统一命名服务。

一、在分布式环境下,常常须要对应用/服务统一命名,便于识别不通服务。

1.1 相似于ip和域名的关系。

1.2 经过名称来获取资源或者服务的地址信息。

2 按照层次组织服务/应用名称。

2.1 它能够将服务名称以及地址名称写到zookeeper中,客户端经过服务名称获取服务列表。、

7、zookeeper--配置管理。

一、 分布式环境下,须要常常配置文件管理和同步。

1.1  y一个集群中,全部的节点配置和信息是一致的。

1.2 咱们对配置文件修改后,须要尽快同步到各个节点中。

 

2  配置管理能够交给zookeeper实现。

2.1  可将配置文件写入到一个znode中。

2.2  各个节点监听这个znode。

2.3  一旦znode的配置文件被修改,zookeeper将通知到其它各个znode

 

8、zookeeper集群管理。

一、分布式环境中,咱们须要实时掌握每一个节点的状态。

1.1 可根据节点状态实时作出一些调整。

二、k可交由zookeeper实现。

2.1 可将zookeeper节点信息写入到一个znode中。

2.2 监听这个节点的实时变化。

 

9、 zookeeper分布式通知与协调。

一、分布式环境中,一个服务常常须要知道他的子服务状态,

1.1 namenode需知道各个DataNode的状态。

1.2 resource manager须要知道nodemanager状态

二、zookeeper实现心跳监测机制,实时信息推送,至关于一个发布/订阅系统。

 

10、zookeeper分布式锁。

一、zookeeper是强一致性的

二、实现锁的独占性。

三、控制锁的时序。

 

11、分布式队列

分布式队列有两种

一、当一个队列所有都聚齐时,这个队列才能够用,不然这个队列会一直等全部成员到达,这种成为同步队列。

1.1 当一个job由全部的task组成时,全部的任务完成后,job才运行。

1.2可为job建立一个/job,而后在该目录下,为每一个完成task建立一个临时的znode,当临时节点的目录数达到task总数时,则job表示完成。

二、队列实现FIFO模式,实现生产者和消费者模型。

 

相关文章
相关标签/搜索