Failover(故障转移/故障切换)
即当流动的服务或利用意外终止时,疾速启用冗余或备用的服务器、零碎、硬件或者网络接替它们工作。
比方一个负载均衡器下挂的多台服务,产生申请是如果一个后端服务挂了,负载均衡器能够主动切换到另一个
Failback(故障复原)
故障复原是指,当服务呈现故障后,还能够复原到故障之前的状态。
比方一个合格的数据库系统,在I/O操作执行一半后(比方写数据+写索引两个文件)产生异样宕机,重启后也不会产生数据错乱
或者近程调用时,如果本次调用失败,能够思考稍后再重试
Fail-fast(early)(疾速失败/提前失败)
大多状况下,程序宕机或者解体的影响并没有那么大,因为解体或谬误数据造成的一系列问题才是最致命的,比方各种费用计算错误等。
Fail-fast就是让程序提前解决失败,如果检测到会呈现谬误,让程序立即产生故障/异样,而不是让程序持续运行造成更重大的结果
校验前置就是一个很根本的Fail-fast解决策略,数据校验不通过时间接抛出谬误,不继续执行。比方Java里的ConcurrentModificationException异样,就算是一个Fail-fast解决,当检测到数据并并行批改时,不解决数据间接抛出异样完结操作,这样就保障了数据的平安,尽管操作被终止了。
Fail-safe(平安失败)
平安失败是指当一个服务或软件出现异常时,也不会对使用者和服务本身造成更大的影响(或者将影响最小化)。
比方在近程调用中,当外部有异样时,最好是外部将异样消化了同时返回平安数据给调用方(比方空数据),同时记录错误信息,或敌对的返回给调用者
平安失败有时也叫防呆设计,比方CPU装置时的卡槽,如果没有对准的话是装不进去的,避免因为方向弄错而损坏CPU