03_Zookeeper基本数据模型及基本命令操作

【Zookeeper基本数据模型及注意点】

* zk的数据模型可以类比为Linux的文件目录,是一种树状结构,如:/dubbo/com.service.DemoService/provider....

* 每一个节点都称之为znode,它可以有子节点,也可以有数据。

* 每个节点分为临时节点和永久节点,临时节点在客户端断开连接后消失。

* 每个zk节点都有各自的版本号,可以通过命令行来显示节点信息

* 每当节点数据发生变化,那么该节点的版本号会累加(乐观锁)。

* 删除/修改过时节点,版本号不匹配会报错。

* 每个zk节点存储的数据不宜过大,不超过几k。

* 节点可以设置ACL,可以通过权限来限制用户的访问。

【Zookeeper数据模型基本操作】

【 zkServer.sh 相关 】

[ 启动zkServer ]

//进入zk的bin目录:cd /zookeeper-3.4.8/bin
./zkServer.sh start

[ 停止zkServer ]

./zkServer.sh stop

[ 重启zkServer ]

./zkServer.sh restart

[ 查看zkServer状态 ]

./zkServer.sh status

 【zkCli.sh相关】

zkCli.sh 使用的基本格式

//-timeout:表示客户端向zk服务器发送心跳的时间间隔,单位为毫秒
//-r:表示客户端以只读模式连接 
//-server:指定指定zk服务器的IP与端口,zk默认的客户端端口为2181
zkCli.sh -timeout 5000 -r -server ip:port

[ zkCli连接本地默认的zkServer ]

./zkCli.sh 

[ zkCli连接远程的zkServer ] 

./zkCli.sh -timeout 5000 -server 192.xxx.x.xxx:2181

【Zookeeper的作用】 

1.master节点选举,主节点挂了以后,从节点就会接手工作,并且保证这个节点是唯一的,这也是所谓的首脑模式,从而保证我们的集群是高可用的。

2.统一配置文件管理,即只需要一台服务器,就可以把相同配置文件的内容同步更新到其他所有服务器(例如修改redis的统一配置)

3.发布与订阅,类似消息队列的MQ,dubbo服务提供者会把数据存在znode上,dubbo服务消费者会订阅读取这个数据。

4.提供分布式锁,分布式环境中不同的进程之间争取资源,类似多线程中的锁。

 5.数据强一致性,在集群中保证数据的强一致性,如图:

猜你喜欢

转载自www.cnblogs.com/HigginCui/p/9644017.html