Master选举 当主机断掉的时候,其他的服务器通过选择,推选出一台新的服务器作为Master主机。
应对网络抖动,所有的服务器监听到master被删除的时候,判断自己是否是Master,
ZooKeeper实现Master选举
ZooKeeper分布式锁:
测试本地需要安装三台虚拟机作为服务器,
集群模式,
单机模式,
伪集群模式, 所有的集群服务都是在一台服务器上,端口号还是有区分的,
客户端使用:
./zkcli.sh -timeout 0 -r -server ip:port
./zkcli.sh -timeout 5000 -server 192.168.1.103
h密令
ZooKeeper数据结构是树状
ls path :查看一个节点下面的所有子节点信息。
stat path[watch]:节点的状态信息。
每一次操作都会分配一个事物id,
悲观锁与乐观锁机制:
悲观锁每次只允许一个线程读取同一资源,
乐观锁一次可支持多个线程读取,在修改操作的时候,加上version版本号来保证数据
的同步正确性。
get /node_1/node_1_1:查看节点数据的内容
ls2 path [watch] :除了可以列出当前节点的子节点还可以列出状态信息。
create [-s] [-e] path data acl : eg: create /node_3 123
create -e /node_3/node_3_1 234 :创建的临时节点
ls /node_3
quit:退出
创建的是一个临时节点,在客户端结束以后,临时节点会自动的删除掉。
create -s /node_3_1 234
:顺序节点,可以利用Zookeeper的顺序节点特性来
set path data [version]:修改节点数据值 可以选择是否带版本
每次修改,不管值是否一致,dataversion都会自动增长。
delete path [version]:删除操作
只能删除没有子节点的节点。
rmr /node_3 :会循环的删除, 包含子节点的节点都会被删除。
get /node_1:希望添加一些限制条件,子节点的个数,值对应得长度
setquota -n|-b val path :设置-n(子节点的个数),-b(值得长度)
setquota -n 2 /node_1:
发现超限的时候Zookeeper会在bin目录下面的zookeeper.out里面记录警告信息
但是依然会创建成功的,
listquota /node_1:查看配额信息与状态信息。
delquota [-n|-b] path:删除子节点的配额。
connect host:port:连接到其他服务器
history:查看所有执行的命令行
redo 14:重复执行指定的密令
两种开源实现的客户端:
ZKclient
Cutator
ZooKeeper技术
猜你喜欢
转载自tangkuo.iteye.com/blog/2289835
今日推荐
周排行