4.1、简介
最经典的比喻就是轮船的设计,隔离设计的英文叫”Bulkheads”,被翻译为隔板,我们的轮船的船舱就是通过隔板隔离出来的空间。其中一个船舱进水了,并不会影响其他船舱,也不会造成沉船,是一种很安全的设计。
在我们微服务的设计当中,难免一些服务”进水(故障)”,隔离设计保证其中一个服务出现问题,其他服务可以保证正常提供服务。
4.2 隔离方案
4.2.1、按业务隔离
这里我们我们按照业务分为三个模块。活动页、首页feed、社交关系。很多业务场景,打开首页的时候,弹出活动页,提示你参加活动,进入活动页H5。
同样根据业务分组,我们将DB资源也进行了隔离。不同的业务对应不同的资源。通过这种分组隔离,我们可以保证如果活动页出现了问题。最差的影响是进入App,首页的活动页消失,这种影响对于用户来说,也仅仅是不能参加活动而已,不影响App的正常使用。
设计隔离的粒度在细,也难免出现跨业务的调用。比如首页关注feed流,拉取所有我关注人发布的信息。如果使用pull的方式,必然先去