您的位置:首页 > 编程语言 > Java开发

zookeeper基础(笔记)

2017-06-20 12:35 106 查看
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命令更详细的统计信息
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  zookeeper java javaee