故障隔离,就是采用一定策略,以实现当某个模块发生故障时,不会影响其他模块继续提供服务,以保证整个系统的可用性,它可以避免分布式系统出现大规模的故障,甚至是瘫痪,降低损失。
分布式系统中的故障策略有很多,基本可以分为两个维度:
线程级故障隔离,是指使用不同的线程池处理不同的请求任务。当某种请求任务出现故障时,负责其他请求任务的线程池不会受到影响,即会继续提供服务,从而实现故障隔离。
线程级的故障隔离策略,在生产环境中较为常用,尤其是针对单体应用。系统再实现线程级隔离后,线程间通信通常使用共享变量来实现,它是一个进程中的全局变量,在进程的各个县城间可以同时使用。
分布式系统按照功能分为不同的进程,分不到相同或者不同的机器中。如果系统的进程分不到不同的机器,从资源的角度来看,也可以算作主机级别的故障隔离。
系统实现进程级隔离后,进程间的协同必须通过进程间通信来实现。进程间通信可以分为两类:
资源隔离就是将分布式系统的所有资源分成几个部分,每部分资源负责一个模块,这样系统各个模块就不会争抢资源,即资源之间相互不干扰。这种方式不仅可以提高硬件资源利用率,也便于系统的维护和管理,大幅提升系统性能。
容器是微服务架构的基础,它本质上是操作系统的一个进程,但是与普通进程有以下区别:
从资源隔离的角度看,还可以有更多故障隔离策略,包括虚拟机隔离、集群隔离、机房隔离等,这些策略会跨集群、跨地域。
下面是关于各种故障隔离策略的详细比较。
用户级别故障隔离是指将不同用户分开,当系统出现故障时,只影响部分用户,而不是全体用户。
常用的用户级别故障隔离策略包括数据分片、负载均衡等。
出处:http://wing011203.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
参与评论
手机查看
返回顶部