zookeepr基本数据模型
1.树形结构,类似于linux系统目录结构
2.每一个节点znode,可以有子节点,也可以有数据
3.每个节点分为永久节点跟临时节点,临时节点再客户端断开后消失
4.每个zk节点都有各自版本号,通过命令行来显示节点信息
5.每当节点数据发生变化,那么该节点的版本号会累加(乐观锁)
6.删除/修改过时的节点,版本号不匹配则会报错
7.每个zk节点存储数据不宜过大,几k即可
8.节点可以设置acl,可以通过权限来限制用户的访问
zookeeper作用体现
1.master节点选举,主节点挂了,从节点接收工作,并且保证这个节点时唯一的,首脑模式,保证我们的集群时高可用的
2.统一配置文件管理,即只需要部署一台服务器,则可以把相同的配置文件同步更新到其他所有服务器
3.发布与订阅,类似消息队列mq,dubbo发布者会把数据存在znode上,订阅者会去读取这个数据
4.提供分布式锁,分布式环境中不同进程之间争夺资源,类似与多线程中的锁。
5.集群管理,集群中保证数据的强一致性
zookeeper节点信息
- cZxid:节点创建后,zookeeper为该节点分配的id
- ctime:节点创建的时间
- mZxid:修改后zookeeper分配的id
- mtime:节点修改的时间
- pZxid:子节点的id
- cversion:子节点的version
- ephemeralOwner:0x0则时永久节点,临时节点则时别的数据
- dataVersion:当前数据版本号,修改会累加1
- aclVersio