ZooKeeper session管理

ZooKeeper的每个客户端在创建连接时会随机选择服务端并保持连接,通过发送PING请求来保持session活跃。当连接断开,客户端会自动重连,如果session超时则会被终止。SessionMovedException是内部异常,发生在session已移动到其他服务端时。客户端可以更新服务器列表,可能导致重连。
摘要由CSDN通过智能技术生成

ZooKeeper的每个客户端都维护一组服务端信息,在创建连接时由应用指定,客户端随机选择一个服务端进行连接,连接成功后,服务端为每个连接分配一个唯一标识。客户端在创建连接时可以指定溢出时间,客户端会周期性的向服务端发送PING请求来保持连接,当客户端检测到与服务端断开连接后,客户端将自动选择服务端列表中的另一个服务端进行重连。客户端允许应用修改服务端列表,但修改可能导致客户端与服务端的重连。

连接状态转换

ZooKeeper使用session来表示客户端和服务端的连接。ZooKeeper的客户端管理一个可用的服务端列表,ZooKeeper客户端首先创建一个handle,handle建立后处于CONNECTING状态,然后客户端随机选择一个服务端进行连接,连接成功后,handle的状态更换到CONNECTED状态。如果出现无法恢复的错误,例如;会话终止或者认证失败,或者应用直接关闭handle,handle将转换到CLOSED状态。
下面是一个ZooKeeper客户端状态转化图:
连接状态转换

创建session

创建客户端session时,应用必须传入一组以逗号分隔的host:port列表,每个都对应一个ZooKeeper服务端,ZooKeeper客户端将选择任意一个服务端并尝试与其连接&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值