使用 ZooKeeper 建立集群应用

*启动zookeeper:*

\1. zkServer.sh start启动zookeeper服务

netstat -anop | grep 2181检查2181端口号是否空闲(可选指令)

img

img

空闲的话什么都不会显示

\2. zkServer.sh检查是否启动正常img

\3. 运行zookeeper

zkCli.sh -server zp:2181也可以,建议只用上一个

img

\4. 当起不来时,杀掉多余的ZooKeeperMain进程

img

①cd /proc/2176(想要删掉进程的端口号)

②cat status检查进程的状态

img

这个Z表示僵尸进程,PPid是想要删掉进程的父进程

③kill -9 2171直接杀掉父进程

④按照这个步骤杀掉所有的僵尸进程

⑤重启zookeeper服务,就可以起来了,还一直不会掉

*基础客户端操作:*

https://blog.csdn.net/java_66666/article/details/81015302?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164931276416780366534875%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164931276416780366534875&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-81015302.142^v5^article_score_rank,157^v4^control&utm_term=zookeeper&spm=1018.2226.3001.4187

查看zookeeper中所有内容

Ls /

img

Znode的类型:

持久znode

不会随着客户端的关机而删除,除非delete,不然一直在

持久znode下允许创建子节点

创建一个新的持久znode

create /znode名称 数据

create /moonlight shine(create要小写)

img

在子节点下创建子节点

必须要一层一层创建并且每一层都要有数据

img

临时znode

客户端关机之后就会消失,也可以用delete删除

临时znode下不允许创建子节点

创建临时znode

Create -e /znode名称 数据

img

创建子节点会报错

img

顺序znode

ZooKeeper 在创建序列时为其分配了序列号,作为其名称的一部分.持久znode跟临时znode都可以是顺序znode

创建顺序znode(持久)

Create -s /znode

创建顺序znode(临时)

Create -s -e /znode

查看znode下面的数据

Get /znode名称

Get /moonlight

img

修改znode下的数据

Set /znode名称 要修改成的数据

Set /moonlight sum

img

删除znode

Delete /znode名称

img

如果znode下面有子节点,会报错

img

全部(递归)删除znode下面的子节点:

Deleteall /znode名称

Zookeeper watch

Zookeeper API: