这是一个三维的立体模型,分为x轴伸缩(水平复制,单个系统、服务,),y轴伸缩(按功能或服务拆分),z轴伸缩(对数据或用户进行切片,定向分割)。其中微服务架构为y轴伸缩。如下图
x轴伸缩
它是通过一个负载均衡器生成多个相同的实例,每一个实例处理1/n负载。缺点每个实例都访问全部数据且它不解决增加开发和应用程序复杂性问题
z轴伸缩
它也是复制多个实例,但是不同的是每个实例所处理的数据都是总数据的一个子集,实例前面的路由器使用请求属性将其路由到适当的实例。例如通过rest api判断出用户a,b,c,就让这些api使用实例1,用户q,w,e进入实例2
y轴伸缩
x轴和y轴提高了应用程序的容量和可用性,但是都没有解决增加开发和应用程序复杂性的问题,y轴伸缩的工作原理就是把一个应用拆成不同服务,每个服务负责不同功能。然后每个服务根据需求向x轴或者是y轴进行伸缩
参考https://zhuanlan.zhihu.com/p/23837664