简而言之:故障转移 是指在不中断服务的情况下,将系统从发生故障的组件自动切换到正常运行的备用组件的过程。 在区块链基础设施中, 故障转移可确保当节点、服务器或数据中心发生故障时,应用程序的 RPC 请求能无缝重定向到另一个正常运行的endpoint 。
基本概念
试想一下,你正在高速公路上行驶,主车道突然被堵住了。如果没有其他路线可走,你就只能困在那里。但如果高速公路系统能在你不经意间自动将你引导至平行车道,这就是“故障转移”的实际应用。
就基础设施而言,故障转移是一种机制,用于检测故障发生时,并立即将流量切换到备用节点。其目标是实现零中断(或near 零中断)。即使在后台处理这些请求的组件刚刚发生变更,您的应用程序仍会继续发出请求、接收响应并正常运行。
区块链基础设施中的故障转移原理
区块链基础设施包含一系列可能发生故障的组件。最常见的故障点包括单个节点、整个区域或数据中心,以及特定的区块链客户端实现。一个优秀的故障转移系统能够应对这三种情况。
在节点层面上,故障转移相对简单。负载均衡器会持续监控池中每个节点的运行状态,检查响应时间、错误率和区块高度。如果某个节点开始返回错误或同步滞后,负载均衡器将停止向该节点发送流量,并将请求分发给其余的正常节点。
在区域层面,情况就更有意思了。如果整个数据中心或云可用区发生故障,基于 DNS 的故障转移机制就会启动。原本应路由到该区域的请求会自动重定向到距离最近的正常运行区域。这就是为什么地理分布如此重要。如果服务商仅在一个区域运行节点,那么当该区域发生故障时,将没有备用方案。