ZooKeeper No1 概念模型

ZooKeeper

一、概念

定义:分布式应用程序协调服务。                                    [分布式系统的可靠协调系统]

功能:为分布式应用提供一致性服务。如配置维护、域名服务、分布式同步、组服务。

代码:分布式独享锁、选举、队列的interface。

目的:封装复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。,

原理:ZooKeeper以Fast Paxos算法为基础。Paxo算法存在活锁的问题,即当有多个proposer交错提交时,有可能相互排斥,导致没有一个proposer能提交成功,Fast Paxos做了优化,通过选举产生一个leader,只有leader才能提交proposer。

基本流程:

1. 选举Leader

2. 同步数据

3. 选举Leader过程算法很多,但达到选举标准一致

4. Leader享有最高的执行ID,类似root权限。

5. 集群大多数的机器得到响应并接受选出的Leader。

二、特点

       Zookeeper中,znode可以存储或获取数据(类似Unix文件系统路径相似的节点)。如果在创建znode时Flag设置为EPHEMERAL,那么当创建这个znode的节点和Zookeeper失去连接后,这个znode将不再存在Zookeeper里。

##Zookeeper使用Watcher察觉事件信息。当客户端接受到事件信息(比如连接超时、节点数据改变、子节点改变),可以调用相应的行为来改变。

##Zookeeper的Wiki页面展示如何使用Zookeeper处理事件通知、队列、优先队列、锁、共享锁、可撤销共享锁、两阶段提交。

## 应用场景:

     ## 20个服务器: 每个负责总索引中的一部分任务  [15个提供服务,5个正在生成索引]

     ## 1个总服务器:发出调用请求并合并结果集

     ## 1个备用总服务器:总服务器宕机时,替换

     ## 1个web的cgi:向总服务器发出请求

## 这20个服务器让正在提供服务的服务器,停止提供服务,开始生成索引的服务器已经把索引生成完成,就可以继续提供服务了。

## 使用Zookeeper:①保证总服务器自动感知有多少提供搜索引擎的服务器,并②向这些服务器发出搜索请求,

      ③当总服务器宕机时自动启用备用的总服务器

三、案例

客户端:连接集群—创建节点\删除节点—获取节点值—获取子节点。

猜你喜欢

转载自blog.csdn.net/ddhmbbklyk2018/article/details/82529235
今日推荐