常见容错机制:failover、failfast、failback、failsafe

1.failover:失效转移


Fail-Over的含义为“失效转移”,是一种备份操做模式,当主要组件异常时,其功能转移到备份组件。其要点在于有主有备,且主故障时备可启用,并设置为主。如Mysql的双Master模式,当正在使用的Master出现故障时,能够拿备Master作主使用sql

2.failfast:快速失败


从字面含义看就是“快速失败”,尽量的发现系统中的错误,使系统可以按照事先设定好的错误的流程执行,对应的方式是“fault-tolerant(错误容忍)”。以JAVA集合(Collection)的快速失败为例,当多个线程对同一个集合的内容进行操做时,就可能会产生fail-fast事件。例如:当某一个线程A经过iterator去遍历某集合的过程当中,若该集合的内容被其余线程所改变了;那么线程A访问集合时,就会抛出ConcurrentModificationException异常(发现错误执行设定好的错误的流程),产生fail-fast事件。安全

3.failback:失效自动恢复


Fail-over以后的自动恢复,在簇网络系统(有两台或多台服务器互联的网络)中,因为要某台服务器进行维修,须要网络资源和服务暂时重定向到备用系统。在此以后将网络资源和服务器恢复为由原始主机提供的过程,称为自动恢复服务器

4.failsafe:失效安全


Fail-Safe的含义为“失效安全”,即便在故障的状况下也不会形成伤害或者尽可能减小伤害。维基百科上一个形象的例子是红绿灯的“冲突监测模块”当监测到错误或者冲突的信号时会将十字路口的红绿灯变为闪烁错误模式,而不是所有显示为绿灯。
 网络