在做系统架构设计的时候,经常离不开的一个话题就是进行服务的隔离设计。
什么是【服务隔离】呢?
服务隔离是指:将系统按照一定的原则划分为若干个服务模块,各模块之间相互独立,无强依赖。
当故障发生时,能将问题和影响隔离在某个模块内部,而不扩散风险,不涉及其他模块,不影响整体的系统服务。
一、为什么要做服务隔离设计呢?
任何软件系统,故障是不可避免的,并且大多数还是不可预测的,因此,只能在设计之初就充分考虑好应对措施,如何在故障发生时,尽最大可能的止损和减少故障范围。
没有人敢说他的系统是百分百可用,我们能做的就是,使用一切方法去减少故障的影响面,尽可能的去提高系统的整体可用率。
而把系统分离成子服务,将子服务进行一定程度隔离的做法,能保证在有不可预测的故障发生时,缩小故障范围的最佳手段。
二、服务隔离应该怎么做?
实际项目中,一般通过什么方法去做服务隔离呢?
主要有以下两种:
按服务/功能做隔离
按用户分类隔离