zookeeper 复习 ---- chapter03
zookeeper 复习 ---- chapter03
- 如何创建 zookeeper 对象
要求:
1:知道这几个构造参数
2:知道每一个参数的含义
ZooKeeper(String connectString, int sessionTimeout, Watcher watcher)
ZooKeeper(String connectString, int sessionTimeout, Watcher watcher, boolean canBeReadOnly)
ZooKeeper(String connectString, int sessionTimeout, Watcher watcher, long sessionId, byte[] sessionPasswd)
ZooKeeper(String connectString, int sessionTimeout, Watcher watcher,long sessionId, byte[] sessionPasswd, boolean canBeReadOnly)
connectString -逗号分隔的 host:port 对,每个对对应一个 zk 服务器。
例如“ 127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002”
如果使用可选的 chroot 后缀
例如 “ 127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002 /niit”
其中客户端将以“ /niit”为根,并且所有路径都将相对于此根
例子:创建一个节点,节点名字/qdu,创建出来的真实节点/niit/qdu
(默认的根节点/)
- sessionTimeout - 会话超时(以毫秒为单位)(会话:客户单连接服务端)
- watcher - 一个状态将被通知的观察对象,也可以被通知节点事件,可以设置为 null
- sessionId - 重新连接时要使用特定会话 id
- sessionPasswd - 该会话的密码
- canBeReadOnly - (在 3.4 中添加)在分区的情况下是否运行创建的客户端进入只读模式
-
zookeeper 常用的方法:
create 在 ZooKeeper 命名空间的指定路径中创建一个 znode
delete 从 ZooKeeper 命名空间的指定路径中删除一个 znode
exists 检查路径中是否存在 znode
getChildren 获取 znode 的子级列表
getData 获取与 znode 关联的数据
setData 将数据设置/写入 znode 的 data 字段
getACL 获取 znode 的 ACL
setACL 在 znode 中设置 ACL
sync 与 ZooKeeper 同步客户端的 znode 视图 -
监视器
如何自定义一个监视器 XXXWatcher
实现 org.apache.zookeeper.Watcher,重写process()方法.
public interface Watcher {void process(WatchedEvent event);}public class DataMonitor implements Watcher, Runnable {process(){//监视器的逻辑}run(){//线程的逻辑}}
群监视器的定义:
用于管理云环境的此类监视节点称为云控制器,
控制器节点的重要工作是检测服务器故障,并相应地通知管理员。采取必要的措施,例如:故障服务器。
高可用性(HA)是系统或系统组件在理想的长时间内连续运行的能力。
可用性=(一个月中的分钟-停机时间)*一个月中的 100 /分钟
可用性的服务级别协议为 99.999%
时间段 时间系统不可用
日 0.9 秒
周 6.0 秒
月 26.3 秒
年 5 分钟 and 15.6 秒