Skip to content

什么是故障隔离?

介绍

从字面意思来看,故障隔离就是,把故障通过某种方式与其他正常模块进行隔离,以保证某一模块出现故障后,不会影响其他模块。

其实,我们生活有很多故障隔离的例子,比如交通。一辆车就类似于分布式系统中的一个模块,当一辆车在高速公路上出现故障后,我们通常会将其停靠在紧急车道,或者在其前后设置故障指示牌,以防止其他车辆与其相撞,引起更大的交通事故。这种将故障车辆停靠在路边紧急车道或设置故障指标牌的方法,就是一种故障隔离。

现在我们回到分布式系统,故障隔离,就是采用一定的策略,以实现当某个模块故障时,不会影响其他模块继续提供服务,以保证整个系统的可用性。所以说,故障隔离,可以避免分布式系统出现大规模的故障,甚至是瘫痪,降低损失。

在分布式系统中,要实现故障隔离,通常需要在进行系统设计时,提前对可能出现的故障进行预防,以使得在出现故障后能实现故障隔离。此外,由于是提前设计预防的,因此故障隔离还可以帮助我们快速定位故障点。

故障隔离策略对比

策略隔离级别实例隔离后协同方法容器
线程级隔离线程数据库连接池隔离使用线程池分配和调度ThreadPool
进程级隔离进程服务实例独立运行使用进程间通信(如IPC)Docker、Kubernetes Pod
资源级隔离内存、CPU、网络等容器化应用的资源限制使用容器资源调度策略cgroups、K8s
模块级隔离应用模块微服务架构中的模块隔离使用服务网关和熔断机制Spring Cloud
网络级隔离网络流量多租户场景中的流量隔离通过虚拟网络或VLAN隔离Service Mesh
故障域隔离物理或逻辑故障域数据中心或机架隔离数据多副本、跨域容灾数据中心、分区部署

粤ICP备20009776号