从paxos到zookeeper读书笔记(第四章)

来源:互联网 发布:债券承销 知乎 编辑:程序博客网 时间:2024/05/24 05:02

zookeeper提供分布式协调服务,提供诸如统一命名服务、配置管理和分布式锁、分布式消息等分布式的基础服务。zookeeper的zab(zookeeper atomic broadCast),是paxos的一种改进。zookeeper是一个典型的分布式数据一致性的解决方案,分布式应用可以基于zookeeper实现发布\订阅、负载均衡、命名服务、分布式协调\通知、集群管理/master选举、分布式锁、和分布式队列等功能。

zookeeper可以保证各种分布式一致性问题:顺序一致性、原子性、单一视图、可靠性、实时性。

zookeeper的设计目标: 提供简单的数据模型、可以构建集群、顺序访问、高性能。

简单的数据模型:zookeeper提供了一个共享的、树型结构的命名空间来进行相互协调,这些数据结构都存在内存中,可以提高吞吐量。

构建分布式集群:


顺序访问:来自于client的事务,zookeeper都会分配一个全局唯一的递增ID,这个ID反应了客户端执行的顺序。

高性能:zookeeper将全部数据结构存在内存中,并直接服务于客户端的非事务请求。


zookeeper概念:

集群角色

在分布式系统中,典型的应用是master/slave 主从模式的架构,提供全局写操作的节点为master,通过异步复制的节点叫做slave。在zookeeper中,提出了leader、Follower、Observer。follower选举产生leader,observer提供读服务,所以zookeeper适用于读多写少的服务。

回话角色:

回话(session):当zookeeper客户端启动的时候,会与zookeeper建立一个长连接,zookeeper能够通过向client发送心跳检测client的状态,通过zookeeper管理zookeeper的client(zookeeper的client为分布式应用的各个节点)。

数据节点:

在分布式应用中,一个是zookeeper管理的节点即为应用节点-机器节点,另一个节点类型为数据节点-znode,管理zookeeper数据模型的数据单元(zookeeper管理节点的数据)。zookeeper为树型数据模型(Znode Tree) , 通过/分割的路径就是一个ZNode,比如/foo/path1 , 为一个ZNode节点,保存数据内容和属性信息。

版本:

zookeeper存放znode的版本。

watcher:

zookeeper允许用户注册事件,在某个时候触发事件,分配给合适的client执行事件,watcher机制是zookeeper实现分布式协调服务的重要特征。

ACL机制:

zookeeper提供类似linux的权限控制机制。

阅读全文
0 0
原创粉丝点击