微服务可用性设计之隔离

隔离

隔离,本质上是对系统或资源进行分割,从而实现当系统发生故障时能限定传播范围和影响范围。即发生故障后,只有出问题的服务不可用,保证其他服务仍然可用。

01

服务隔离

1、动静隔离

小到CPU的cacheline false sharing、数据库MYSQL表设计中避免bufferpool频繁过期,隔离动静表。大到架构设计中的图片、静态资源等缓存加速。本质上都是一样的思路,即加速/缓存访问变换频次小的。

比如CDN场景中,将静态资源和动态API分离,也是体现了隔离的思路:

比如数据库表设计场景中:

archive:稿件表,存储稿件的名称、作者、分类、TAG、状态等信息,表示稿件的基本信息。(在一个投稿流程中,一旦稿件创建改动的频率比较低)