本篇主要介绍,zookeeper的一些基本知识
zookeeper是什么?
zookeeper是一种用户分布式应用程序的协调服务。使用它你可以解决一些分布式程序的问题,例如主节点的选举问题,分布式锁的问题等等
zookeeper的设计目标
- 简单可用
- 高可用
- 有序
zookeeper主要的概念
1. 数据节点
类似linux的文件系统一样,一种树形的数据结构
2. 数据节点类型
- 临时节点
与Session的生命周期绑定,如果Session断开则节点删除,基于此特性该节点不能子节点
- 持久节点
- 有效节点
该类型节点可以保持原子递增,细分为有序持久和有序临时节点
- 容器节点 (3.5.3版本)
当该容器中最后一个孩子被删除的时候,该节点可以被删除,(主要为了垃圾收集)
3.Session
客户端与服务器建立的一个连接会话
- 主要状态状态
开始,连接中,已连接,关闭这四种状态,特别需要注意的是会话是否失效,是有服务端定义的,但是客户端可以显示的关闭。
4.Watches
1.主要特点
- 一次触发
当数据有改变的时候,去通知客户端,通过一次之后,下次在变更的时候,需要客户端重新注册watch。(不过好多的开源的sdk已经把这些给封装了)
- 发送客户端
只有客户端接收到服务端的成功以后,客户端才能真正的监听到消息
5.ACL权限
- create
你可以创建子节点
- read
你可以获数据从一个节点
- write
向一个节点设置数据
- delete
你可以删除数据
- admin
可以设置权限
6.应用场景
可以实现数据的发布/订阅,负载均衡,master选举,分布式队列,分布式锁等