zookeeper的类型

  1. 临时znode类型

当客户端会话断开连接,若在规定时间(默认是30s)内没有重新连接则该客户端创建的所有znode都会被删除。

  1. 永久znode

当客户端会话断开连接,znode不会被删除。

默认创建的znode都是永久的,如果想要创建临时znode,则需要指定"-e"参数。

验证测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
[zk: localhost:2181(CONNECTED) 0] ls /
[luay, zookeeper]

#查看znode状态信息
[zk: localhost:2181(CONNECTED) 1] stat /luay
cZxid = 0x400000002
ctime = Mon Oct 28 13:09:07 UTC 2024
mZxid = 0x40000000e
mtime = Mon Oct 28 13:11:34 UTC 2024
pZxid = 0x40000000b
cversion = 5
dataVersion = 3
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 1

#临时创建znode

[zk: localhost:2181(CONNECTED) 2] create -e /abc
Created /abc

[zk: localhost:2181(CONNECTED) 6] stat /abc
cZxid = 0xf00000002
ctime = Mon Oct 28 14:23:04 UTC 2024
mZxid = 0xf00000002
mtime = Mon Oct 28 14:23:04 UTC 2024
pZxid = 0xf00000002
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0xd500028c8caa0000
dataLength = 0
numChildren = 0

`注意:ephemeralOwner这一行,不是和上面永久znode状态一样,上面永久的是0x0`

#退出连接等待30s再次连接查看--没了
[zk: localhost:2181(CONNECTED) 0] ls /
[luay, zookeeper]

'重新建立链接,默认30s后数据就自动删除!'

zookeeper的JVM调优

1
2
3
4
5
1.zookeeper的堆内存调优思路(这里调试128m测试)
生成环境中,建议配置2GB-4GB即可。默认是1GB。

2.查看默认的堆内存大小
[root@elk03:1 ~]# ps -ef | grep zookeeper | grep -i xmx

image-20241028223011825

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
3.修改官方的环境变量脚本
[root@elk03:1 ~]# cat /app/zookeeper/bin/zkEnv.sh
···
# default heap for zookeeper server
ZK_SERVER_HEAP="${ZK_SERVER_HEAP:-128}"

# default heap for zookeeper client
ZK_CLIENT_HEAP="${ZK_CLIENT_HEAP:-128}"

4. 同步到其它节点
[root@elk03 ~]# scp /app/zookeeper/bin/zkEnv.sh 10.0.0.211:/app/zookeeper/bin/
[root@elk03 ~]# scp /app/zookeeper/bin/zkEnv.sh 10.0.0.212:/app/zookeeper/bin/

5.重启zookeeper集群(所有节点)
[root@elk03:1 ~]# zkServer.sh restart

6.再次查看占用内存大小
[root@elk03 ~]# ps -ef | grep zookeeper | grep -i xmx

zookeeper的图形化管理

了解

1
2
#依赖1.8版本jdk
https://github.com/zhitom/zkweb/releases/download/zkWeb-v1.2.1/zkWeb-v1.2.1.jar
1
2
3
4
5
6
7
8
9
10
11
1.解压jdk
[root@elk01 ~]#tar xf jdk-8u291-linux-x64.tar.gz -C /app/

2.前台启动zkweb
[root@elk01 ~]# /app/jdk1.8.0_291/bin/java -jar /app/zkWeb-v1.2.1.jar

后台启动:
[root@elk01 ~]# nohup /app/jdk1.8.0_291/bin/java -jar /app/zkWeb-v1.2.1.jar &> /tmp/zkweb.log

3.浏览器访问
10.0.0.211:8099/

注:多个节点直接以 , 分开 10.0.0.211:2181,10.0.0.212:2181,10.0.0.213:2181

image-20241028231813958

image-20241028232321533