玩Zookeeper的时候经常偶先KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss 跟进去一看 获取连接的时候显示 err:-112
然后查了一下状态码,显示会话过期,果然是这样,记录一下,同时把每个状态备注一份
错误码 | 名称 | 说明 |
---|---|---|
-1 | Unknown | 此状态不由服务器生成 |
0 | 断开连接 | 客户端处于断开连接状态-它未连接到集成中的任何服务器 |
1 | 未连接同步(已弃用) | 此状态不由服务器生成 |
3 | 同步连接 | 客户端处于已连接状态-它已连接到集成中的服务器(ZooKeeper client创建期间在主机连接参数中指定的服务器之一) |
4 | 验证失败 | 身份验证失败状态 |
5 | 连接只读 | 客户端连接到只读服务器,即当前未连接到大多数服务器的服务器。接收到此状态后允许的唯一操作是读取操作。此状态仅为只读客户端生成,因为读/写客户端不允许连接到r/o服务器 |
6 | Sasl认证 | 用于通知客户端它们已通过SASL身份验证,以便它们可以使用SASL授权的权限执行Zookeeper操作 |
-112 | 过期 | 服务群集已在此会话过期。ZooKeeper客户端连接(会话)不再有效。如果要访问集成,必须创建一个新的客户端连接(实例化一个新的ZooKeeper*实例) |