ZooKeeper异常处理
在这里谈谈使用zookeeper的过程中需要注意的两个状态及相关异常处理。
1?CONNECTION_LOSS?(异常ConnectionLossException)
? ? ?其意思是客户端和服务器端连接断开了,CONNECTION_LOSS?并不意味着请求会失败,但是注意也不会保证能成功。当客户端从服务器断开时,会尝试连接其它服务器,如果在超时前能有一台服务器能连接成功,则请求执行。否则超时错误。在获得ConnectionLossException异常时,可以采用重试方式来处理,但是当重试到超时时就得重建一个连接了。
? ??
2?SESSION_EXPIRED?
? ?超时,唯一你要做的是新建一个连接。 session 过期是服务器管理的,而不是客户端。
?
最后附上zookeeper连接状态图
?