Zookeper客户端与服务端建立连接时,会维护一个session,在建立连接过程中session状态是connecting,在建立连接后session状态是connected,建立连接后,客户端不断的给服务端发送心跳包,当在一定时间内,服务端检测不到客户端的心跳包,认为session已经过期失效,session状态是closed,session失效后会移除在该session下创建的临时节点。
# 创建临时节点 [zk: localhost:2181(CONNECTED) 2] create -e /test 100 Created /test # ctr+c 退出,再迅速连接查看临时节点,由于session还没过期,所以临时节点没有被删除 [root@localhost bin]# ./zkCli.sh [zk: localhost:2181(CONNECTED) 0] ls / [test, zookeeper] # ctr+c 退出,过会再连接查看临时节点,此时session已经失效 临时节点已经被删除 [zk: localhost:2181(CONNECTED) 0] ls / [zookeeper] # 使用close关闭连接 session会失效,再次登录发现节点已经被删除 [zk: localhost:2181(CONNECTED) 2] create -e /test 100 Created /test [zk: localhost:2181(CONNECTED) 3] close [root@localhost bin]# ./zkCli.sh [zk: localhost:2181(CONNECTED) 0] ls / [zookeeper]



