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