zookeeper介绍.pptx
《zookeeper介绍.pptx》由会员分享,可在线阅读,更多相关《zookeeper介绍.pptx(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Apache Zookeeper介介绍绍Agenda概述安装结构与原理应用什么是什么是ZookeeperZookeeper?Zookeeper是Google的Chubby一个开源的实现,最初是Hadoop的分布式协调服务。它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等什么是什么是ZookeeperZookeeper?为什么使用为什么使用ZookeeperZookeeper?大部分分布式应用需要一个主控、协调器或控制器来管理物理分布的子进程(如资源、任务分配等)目前,大部分应用需要开发私有的协调程序,缺乏一个通用的机制协调程序的反复编写浪费,且难以形成通用、伸
2、缩性好的协调器ZooKeeper:提供通用的分布式锁服务,用以协调分布式应用ZookeeperZookeeper能帮我们做什么?能帮我们做什么?在Zookeeper的官网上有这么一句话:ZooKeeperisacentralizedserviceformaintainingconfigurationinformation,naming,providingdistributedsynchronization,andprovidinggroupservices.这大概描述了Zookeeper主要可以干哪些事情:配置管理,命名服务,提供分布式同步以及集群管理。ZookeeperZookeeper的安
3、装和配置的安装和配置独立模式(1-1)集群模式(n-n)*伪集群模式(1-n)ZookeeperZookeeper的安装和配置的安装和配置(独立模式独立模式)下载:wgethttp:/ server.2=server2:2888:3888server.3=server3:2888:3888(第一个端口用于仲裁通信,第二个端口用于群首选举)ZookeeperZookeeper的安装和配置的安装和配置(伪集群模式伪集群模式)在conf目录下分别创建配置文件zoo1.cfg,zoo2.cfg,zoo3.cfgtickTime=2000dataDir=/Users/zdandljb/zookeeper
4、/datadataLogDir=xxx/zookeeper/server1/clientPort=2181(zoo1,zoo2,zoo3不同)server.1=server1:2222:2333server.2=server2:3333:3334server.3=server3:4444:4445启动:./bin/zkServer.shstartzoo1.cfgZookeeperZookeeper的数据模型的数据模型层次化的目录结构,命名符合常规文件系统规范每个节点在zookeeper中叫做znode,并且其有一个唯一的路径标识节点znode可以包含数据和子节点,但是EPHEMERAL类型的节
5、点不能有子节点znode中的数据可以有多个版本,比如某一个路径下存有多个数据版本,那么查询这个路径下的数据就需要带上版本客户端应用可以在节点上设置监视器节点不支持部分读写,而是一次性完整读写ZookeeperZookeeper的数据模型的数据模型ZookeeperZookeeper的节点的节点Znode有两种类型,临时的(ephemeral)和持久的(persistent),这两个类型又各自有自增序列的和非自增序列的,总共有四种形式的节点:PERSISTENTPERSISTENT_SEQUENTIALEPHEMERALEPHEMERAL_SEQUENTIALZnode的类型在创建时确定并且之后
6、不能再修改临时znode的客户端会话结束时,zookeeper会将该临时znode删除,临时znode不可以有子节点持久znode不依赖于客户端会话,只有当客户端明确要删除该持久znode时才会被删除ZookeeperZookeeper的顺序号的顺序号创建带自增序列znode时设置顺序标识,znode名称后会附加一个值顺序号是一个单调递增的计数器,由父节点维护在分布式系统中,顺序号可以被用于为所有的事件进行全局排序,这样客户端可以通过顺序号推断事件的顺序ZookeeperZookeeper的角色的角色领导者(leader),负责进行投票的发起和决议,更新系统状态学习者(learner),包括跟
7、随者(follower)和观察者(observer),follower用于接受客户端请求并想客户端返回结果,在选主过程中参与投票Observer可以接受客户端连接,将写请求转发给leader,但observer不参加投票过程,只同步leader的状态,observer的目的是为了扩展系统,提高读取速度客户端(client),请求发起方ZookeeperZookeeper的角色的角色ZookeeperZookeeper的读写机制的读写机制Zookeeper是一个由多个server组成的集群一个leader,多个follower每个server保存一份数据副本全局数据一致分布式读写更新请求转发,由
8、更新请求转发,由leader实施实施ZookeeperZookeeper更新数据的保证更新数据的保证更新请求顺序进行,来自同一个client的更新请求按其发送顺序依次执行数据更新原子性,一次数据更新要么成功,要么失败全局唯一数据视图,client无论连接到哪个server,数据视图都是一致的实时性,在一定事件范围内,client能读到最新数据ZookeeperZookeeper的的APIAPI接口接口Stringcreate(Stringpath,bytedata,Listacl,CreateModecreateMode)Statexists(Stringpath,booleanwatch)v
9、oiddelete(Stringpath,intversion)ListgetChildren(Stringpath,booleanwatch)StatsetData(Stringpath,bytedata,intversion)bytegetData(Stringpath,booleanwatch,Statstat)voidaddAuthInfo(Stringscheme,byteauth)StatsetACL(Stringpath,Listacl,intversion)ListgetACL(Stringpath,Statstat)观察者(观察者(watcherwatcher)Watcher
10、在ZooKeeper是一个核心功能,Watcher可以监控目录节点的数据变化以及子目录的变化,一旦这些状态发生变化,服务器就会通知所有设置在这个目录节点上的Watcher,从而每个客户端都很快知道它所关注的目录节点的状态发生变化,而做出相应的反应可以设置观察的操作:exists,getChildren,getData可以触发观察的操作:create,delete,setData写操作与写操作与zookeeperzookeeper内部事件的对应关系内部事件的对应关系zookeeperzookeeper内部事件与内部事件与watcherwatcher的对应关系的对应关系写操作与watcher的对应
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- zookeeper 介绍
限制150内