zookeeper基础(笔记)

来源:互联网 发布:python中什么叫装饰器 编辑:程序博客网 时间:2024/06/17 04:29

zookeeper是开源的分布式协调服务,由雅虎创建,google开源实现。

zookeeper是一个高性能的分布式数据一致性解决方案,它将复杂的、容易出错的分布式一致性服务封装起来,构成一个高可靠的原语集,并提供一系列简单易用的接口。

集群角色:
leader服务器是整个zookeeper集群工作机制的核心
follwer服务器是zookeeper集群状态的跟随者
observer服务器充当一个观察者的角色

会话
会话是指客户端和zookeeper服务器的连接,也叫session,客户端与服务器建立一个tcp的长连接来维持一个session,客户端能够通过心跳检测与服务器保持有效的会话,也能向zk服务器发送请求并获取响应。

数据节点
目录结构:

/ ——> /NameServer ——> /service1  ——>             ——> /service2  ——> /Apps  ——> /Configure

事件监听器
zookeeper允许用户在指定的节点上注册一些watcher,当数据节点发送变化,zookeeper服务器会将变化的通知发送给感兴趣的客户端。

ACL(Access Control List)权限控制
zookeeper采用ACL策略来进行权限控制:

CREATE:创建子节点的权限READ:获取节点数据和子节点列表的权限WRITE:更新节点数据的权限DELETE:删除节点数据的权限ADMIN:设置节点ACL的权限

zookeeper安装:

1.需要先安装jdk环境

2.然后在每个服务器zookeeper/conf目录下复制一份zoo_simple.cfg文件改名为zoo.cfg

3.vim myid 内容为当前服务器在zoo.cfg文件中的server的号数,如server.1则写入1,myid文件放在配置的dataDir目录下

4.修改zoo.cfg文件,追加服务器地址:

server.1=192.168.0.3:2888:3888 server.2=192.168.0.2:2888:3888......

第一个端口表示该服务器与集群中的leader交换的信息的端口。
第二个端口为选举端口,表示选举新leader时服务器间相互通信的端口(当leader挂掉时,其余服务器会相互通信,选择出新的leader)。
一般来说,集群中每个服务器的A端口都是一样,每个服务器的B端口也是一样

5.进入/zookeeper/bin目录下启动服务:./zkServer.sh start
zookeeper集群只要有一半的服务器正常启动就能正常工作

四字命令
echo stat | nc 192.168.0.3 2181 显示指定zookeeper服务的状态

echo conf | nc 192.168.0.3 2181 zookeeper服务器运行时的基本配置信息

echo cons | nc 192.168.0.3 2181 zookeeper服务器上所有客户端连接的详细信息

echo dump | nc 192.168.0.3 2181 输出当前集群的所有会话信息,包括会话id和每个会话创建的临时节点

echo envi | nc 192.168.0.3 2181 zookeper所在服务器运行时的环境信息

echo ruok | nc 192.168.0.3 2181 当前服务器是否正在运行

echo srvr | nc 192.168.0.3 2181 当前服务器的自身信息

echo srst | nc 192.168.0.3 2181 重置所有服务器统计信息

echo wchs | nc 192.168.0.3 2181 当前服务器管理的watch的概要信息

echo wchc | nc 192.168.0.3 2181 当前服务器管理的watch的详细信息,以会话为单位

echo wchp | nc 192.168.0.3 2181 当前服务器管理的watch详细信息,以节点路径为单位

echo mntr | nc 192.168.0.3 2181 用于输出比stat命令更详细的统计信息

原创粉丝点击