-
无法修复的故障相关资料-Intouch2017培训教材
资源介绍
5.2 不可恢复的故障
有时,一些更糟的事情发生,导致会话无法恢复而必须被关闭。这
种情况最常见的原因是会话过期,另一个原因是已认证的会话无法再次
与ZooKeeper完成认证。这两种情况下,ZooKeeper都会丢弃会话的状
态。
对这种状态丢失最明显的例子就是临时性节点,这种节点在会话关
闭时会被删除。会话关闭时,ZooKeeper内部也会丢弃一些不可见的状
态。
当客户端无法提供适当的认证信息来完成会话的认证时,或
Disconnected事件后客户端重新连接到已过期的会话,就会发生不可恢
复的故障。客户端库无法确定自己的会话是否已经失败,如图5-4中所
看到的,直到在t4时刻,旧的客户端才已经失去连接,之后被系统其他
部分声明为终止状态。
处理不可恢复故障的最简单方法就是中止进程并重启,这样可以使
进程恢复原状,通过一个新的会话重新初始化自己的状态。如果该进程
继续工作,首先必须要清除与旧会话关联的应用内部的进程状态信息,
然后重新初始化新的状态。
注意:从不可恢复故障自动恢复的危害