zookeeper单机版及操作
1、下载zookeeper,上传到服务器,解压
2、 修改配置文件名字:mv zoo_sample.cfg zoo.cfg
3、 修改配置文件中的datadir参数
4、 启动服务端 zook:bin/zkServer.sh start ---- ---退出服务zook:bin/zkServer.sh stop
Mode:stadalone--单机模式
5、 启动客户端:bin/zkCli.sh ---退出客户端 quit
配置参数解释:
tickTime=2000:每个心跳2s
initLimit=10 :LF初始化连接通信时限10个心跳针
syncLimit=5:LF同步通信时限5个心跳
clientPort=2181:客户端连接端口号
zookeeper内部原理
1、半数机制
2、选举机制:投票选举制,超过半数为leader,其他为follower
节点类型:持久节点(Persistent):客户端与服务器断开连接后,创建的节点依然存在
持久化目录节点
持久化顺序编号目录节点
短暂节点(Ephemeral):客户端与服务器断开连接后,创建的节点自己删除
临时目录节点
临时顺序编号目录节点
顺序节点作用:
创建Znode时设置顺序标识,Znode名称后附加一个值,顺序号是一个单调递增的计数器,由父节点维护。
在分布式系统中,顺序号可以被用于所有的事假进行全局排序,这样的客户端可以通过顺序号推断出事件的顺序。
客户端与zookeeper断开后,临时节点都会删除。
zookeeper分布式安装部署:
3台服务器上在 zkData 中创建 文件myid(文件名字必须是myid) ,编辑内容为当前服务器的编号 1 3 ...
cd zkData touch myid vim 2
vim zoo.cnf 增加:
server.2= ip:2888:3888
server.3= ip:2888:3888
server.4= ip:2888:3888
----server.A=B:C:D
A是一个数字,表示这个是第几号服务器,
B是这个服务器的ip地址
C是这个服务器与集群中的Leader服务器交互信息的端口
D是万一集群中的leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader
命令:xsync zoo.cfg ?
bin/zkServer.sh status:查看zookeeper状态(leader或者follower)
create /zook myz02 :普通持久节点
create -s /zook myz02:持久顺序节点
create -e /zook myz01 :短暂节点
create -e -s /zook myz01 :短暂顺序节点
get /zook watch:监听节点数据变化
ls path watch:监听子节点变化