1、zkAPI:(借助闭锁来实现)
1)创建闭锁对象 2)创建zk对象 3)连接zk客户端(连接成功执行countDown方法) 4)执行await方法(保证链接成功) 5)zk对象调用对应的方法
2、集群的搭建:
在一台服务器上安装好zk(解压压缩包“tar -xvf xxx”,复制conf文件夹下的zoo_sample.cfg为zoo.cfg,并编辑修改dataDir和增加集群服务器配置,在dataDir指定目录下新建并编辑myid文件,输入对应的服务器号,并退出)
将配置好的zk打包(tar -zcvf xxx),并发送到指定的服务器 scp -r xxx <username>@<server>:目标位置
修改myid和配置文件中的数字相匹配
挨个启动zk服务,查看进程是否启动(jps),查看集群是否启动成功(./zkServer.sh status)
经验:
zookeeper的前期学习以节点为主,包括客户端对节点的操作,和借助api对节点的操作。相关的操作按照增删改查进行复习:
创建节点:create [-e] [-s] 节点路径 节点内容 -s:代表顺序创建 -e:代表临时创建,与客户端断开连接后自动删除
删除节点:delete 节点路径名 一般不做删除操作,有实效的节点一般都设置成临时节点
更改节点: set 节点路径 节点内容:更改某个节点的内容
查询节点: ls 节点路径:查看子节点 get 节点路径 查看节点的具体信息
至于api的学习:
ZooKeeper zk = new ZooKeeper("ip地址:端口号",临时节点失效时间,监控器); //创建好zk对象之后:
创建节点:public String create(final String path, byte data[], List<ACL> acl,CreateMode createMode)
删除节点:public void delete(final String path, int version)
更改节点: public Stat setData(final String path, byte data[], int version)
查询节点: public byte[] getData(final String path, Watcher watcher, Stat stat)
ps:path:创建节点全路径
data:节点数据内容,类型是byte[]
acl : 代表的是权限,OPEN_ACL_UNSAFE表示的是所有人对该节点做CRUD
createMode: persistent:普通持久节点
ephemeral:普通临时节点
persistent_sequential:顺序持久节点
ephemeral_sequential:顺序临时节点
version:节点的版本号,既可以和当前节点版本号相同,也可以指定成-1(均可修改,建议使用)