今天在我司的RPC框架中看到一个参数,如果配置了fail-fast则可设置重试次数和重试间隔时间,配置了fail-over是另一套重试次数和重试间隔时间,借此了解下保证高可用的几种常见的容错机制。
FailOver(故障转移)
failOver是一个动作(或行为),指服务器,系统,硬件,网络在出错的情况下,切换至副本或者备份的行为。failOver和switchOver基本上是相同的操作,前者强调自动切换,后者需要人工介入。系统设计都需要提供支持failOver的特性来提升高可用度。在服务的层面,自动failOver通常需要在两个server之间维护“心跳”,只要“心跳”在主备server之间通信正常,备份的server就不会启用。可能还会有第三方的server来通过运行其他组件来保证“热切换”,副本机器接收到心跳的变化就开始接管工作,有些系统也会通过发送failOver的通知来实现。(这里的热切换指可以快速从主server切换到备份server,而冷切换指系统服务会停止,等待一段时间后继续工作)
FailBack(故障恢复)
failBack是指系统恢复的过程,系统和组件恢复到failOver前的状态,并把备份节点恢复到备份的状态。
Fail-Fast(快速失败)
fail-fast是一个特性,代表系统可以在很有可能出错的场景下立即报错的特性。fail-fast的系统通常被设计成尽可能禁止操作而不是允许可能的错误流程。这种设计通常是在操作的过程中,校验系统的状态,以此校验出任何的错误。fail-fa