美文网首页
微服务架构理论-AKF扩展立方体

微服务架构理论-AKF扩展立方体

作者: 宋雾代 | 来源:发表于2019-02-16 08:56 被阅读0次

看了《架构即未来》这本书,里面提到了AKF扩展立方体。因为一直在做微服务架构方面的设计,这个模型算是对以前经验积累的一种提炼。
在做服务架构的时候我们一直提到扩展和负载,也会提到横向扩展,纵向扩展。AKF扩展立方体就是对这些理论的完整性的总结。
既然是立方体,那么这是一个三维的模型,分别包含X,Y,Z轴,三个不同维度相辅相成。

X轴扩展

所谓X轴代表把同样的工作或数据镜像分配给多个实体。换句话说就是复制服务然后负载均衡。这也是最简单最基础的扩展。

例子:

我有个网站,一开始部署在服务器A上对外服务,随着访问人数增加,一台服务其的性能无法支持,于是我又在服务器上B上同样部署了网站,然后在前面部署了Apache或者Nginx来分流访问,这就是最基本的X轴扩展。

优点:

简单易扩展。

缺点:

不易维护。所谓不易维护体现在以下几点:

  • 例如我更新网站的登陆模块,我需要将所有服务重新部署发布。
  • 如果网站首页新闻访问量大,但是登陆访问量少,我无法区分只能复制服务。

Y轴扩展

针对X轴扩展产生的问题,我们需要将大型服务进行拆解,把分割的工作指责和数据分配个多个实体这也就是Y轴扩展。也是微服务理论诞生的基础。

例子:

我把网站的注册登录模块,首页新闻展示模块,后台维护模块拆成了多个微服务进行部署维护。
X轴扩展和Y轴扩展并不矛盾,是可以结合的,比如我发现新闻展示模块压力很大,我可以对新闻展示模块进行X轴扩展,部署多个镜像来分担压力。

优点:

服务拆解以后便于维护和有针对性的扩展。

缺点:

成本较高。所谓成本较高体现在如下几点:

  • 按功能拆解以后,服务数量增多,部署成本增高
  • 服务与服务之间调用传输成本增高,由内存调用转变为网络传输,故障率增高
    过早的优化是万恶之源,一定要选择与应用规模相符合的架构,比如一个小型网站就没必要进行Y轴扩展,增加成本。

Z轴扩展

Z轴代表按照客户、客户的需要、位置或者价值分割或分配工作指责。一般在超大型系统中,架构设计就会面临Z轴扩展的需求。

例子:

  1. 网站一开始建设在上海数据中心,面向全国服务。随着公司业务的增长,西安的客户大量增加,但是访问上海数据中心速度很慢,所以公司考虑在西安建立数据中心来应对用户访问,这就是Z轴扩展。
  2. 某公司系统同时面向多个客户提供数据服务。最近,公司新谈了客户A,客户A由于体量巨大,超过了现有客户的综合,同时对系统稳定性要求很高,公司决定对客户A单独部署系统提供服务,这也是典型的Z轴扩展。

优点:

在客户层面上进行隔离,可以对客户需求进行个性化和定制化。

缺点:

从例子上,大家也可以明显感觉到Z轴扩展是所有扩展中成本最高的。

相关文章

网友评论

      本文标题:微服务架构理论-AKF扩展立方体

      本文链接:https://www.haomeiwen.com/subject/zzzueqtx.html