微服务体系三维可缩放模型

本文说明了微服务体系的可缩放模型中,3种维度上缩放能力的优缺点。html

X轴缩放

X轴缩放包括在负载均衡器后面运行的应用程序的多个副本。若是有N个副本,则每一个副本处理1 / N的负载。
这是一种简单,经常使用的扩展应用程序的方法。
这种方法的一个缺点是,因为每一个副本可能访问全部数据,所以高速缓存须要更多的内存。这种方法的另外一个问题是,它没有解决大型应用程序开发复杂性的问题。数据库

Y轴缩放

Y轴缩放将应用程序拆分为多个不一样的服务。每项服务都负责一项或多项密切相关的职能。
有几种不一样的方法能够将应用程序分解为服务。一种方法是使用基于动词的分解并定义实现单个用例的服务。另外一种选择是经过名词来分解应用程序,并建立负责与特定实体相关的全部操做的服务。应用程序也可能混合使用基于动词和基于名词的分解方式。缓存

Z轴缩放

使用Z轴缩放时,每一个服务器都运行相同的代码副本。在这方面,它相似于X轴缩放。最大的区别是每一个服务器只负责数据的一个子集。系统的某些组件负责将每一个请求路由到适当的服务器。
一种经常使用的路由标准是根据请求的属性,例如被访问实体的主键。另外一种常见的路由标准是客户类型。例如,经过将其请求路由到具备更多容量的不一样服务器集,应用程序能够为付费客户提供比免费客户更高的服务等级。服务器

Z轴分割一般用于缩放数据库

基于每一个实体的数据行,经过一组数据库对数据进行分区(也称为分片)。负载均衡

Z轴缩放具备许多优势

  • 每一个数据库服务器仅处理数据的子集;
  • 这能够提升缓存利用率并减小内存使用和I / O流量;
  • 它还提升了事务可伸缩性,由于请求一般分布在多个数据库服务器上;
  • Z轴缩放可改善故障隔离,由于故障只会使部分数据不可访问。

Z轴缩放有一些缺点

  • 应用程序复杂性增长;
  • 须要实现一个分区方案,这可能很棘手,特别是若是咱们须要从新分区数据;
  • 不能解决大型应用程序开发复杂性的问题。要解决这些问题,咱们须要Y轴缩放
相关文章
相关标签/搜索