分布式系统中的故障处理与系统模型
1 服务器端令牌检查与拜占庭故障
在服务器端检查令牌看似有弊端,但实际上是有益的。服务不应假定其客户端总是行为良好,因为客户端使用者的优先级与服务运营者往往不同。所以,服务保护自己免受意外滥用的客户端影响是明智之举。
1.1 击剑令牌与拜占庭故障
击剑令牌能检测并阻止因疏忽而犯错的节点,比如未发现租约已过期的节点。然而,如果节点蓄意破坏系统保障,它可以轻易发送带有伪造击剑令牌的消息来达成目的。
我们通常假设节点不可靠但诚实,即它们可能响应缓慢或无响应,状态可能过时,但只要响应就是在“说实话”,遵循协议规则。但如果节点可能“说谎”,发送任意错误或损坏的响应,分布式系统问题就会变得棘手,这种行为被称为拜占庭故障,在这种不信任环境中达成共识的问题就是拜占庭将军问题。
1.2 拜占庭将军问题
拜占庭将军问题是两将军问题的推广。两将军问题设想两位将军分处两地,只能通过信使交流,信使可能延迟或丢失消息,他们需要就作战计划达成一致。而在拜占庭版本中,有 n 位将军,其中存在叛徒,叛徒会发送虚假消息试图欺骗和迷惑他人,且事先不知道谁是叛徒。
1.3 拜占庭容错系统
一个系统若在部分节点故障、不遵守协议或受到恶意攻击干扰网络时仍能正常运行,就是拜占庭容错系统。在某些特定情况下,这一特性很重要:
- 航空航天环境 :计算机内存或 CPU 寄存器中的数据可能因辐射损坏,导致其以不可预测的方式响应其他节点。由于系统故障成本高昂,飞行控制系统必须容忍拜占庭故障。
- 多组织参与的系统 <
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



