架构设计之「服务隔离」

服务隔离是指将系统划分为独立模块,减少故障影响范围。灵感来源于「舱壁隔离」,目的是在故障发生时,限制问题扩散,提高系统整体可用性。常见的隔离策略包括按服务/功能隔离和按用户隔离。服务隔离需注意不可越界、不可共享、考虑效率和颗粒度,同时配合全面监控以确保系统稳定性。
摘要由CSDN通过智能技术生成

我们在做系统架构设计的时候,经常离不开的一个话题就是进行服务的隔离设计。

那什么是「服务隔离」呢?
顾名思义,它是指将系统按照一定的原则划分为若干个服务模块,各个模块之间相对独立,无强依赖。当有故障发生时,能将问题和影响隔离在某个模块内部,而不扩散风险,不波及其它模块,不影响整体的系统服务。

其实隔离设计并非软件行业独创,它是借鉴于造船行业。

如上图,造船行业有一个专业术语叫做「舱壁隔离」。利用舱壁将不同的船舱隔离起来,如果某一个船舱进了水,那么就可以立即封闭舱门,形成舱壁隔离,只损失那一个船舱,其他船舱不受影响,整个船只还是可以正常航行。

一、为什么要做服务隔离设计呢?
我们在做系统设计的时候,必须有一个清楚的认知是:任何软件系统,故障是不可避免的,并且大多数还是不可预测的,因此,我们只能在系统的设计之初就充分的考虑好应对措施,如何在故障发生时,去尽最大可能的止损和减少故障范围。

没有人敢说他的系统是百分百可用,我们能做的就是,使用一切方法去减少故障的影响面,尽可能的去提高系统的整体可用率。

而把系统分离成子服务,将子服务进行一定程度隔离的做法,能保证在有不可预测的故障发生时,缩小故障范围的最佳手段。

二、服务隔离应该怎么做?
那在实际项目中,一般通过什么方法去做服务隔离呢?主要有以下两种:

按服务/功能做隔离

按用户分类隔离

首先说一下按照服务进行隔离的做法。

网上找了一张图,虽然原图的作用不是用来表述这个的,但是也类似

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值