美文网首页
AKF扩展立方体

AKF扩展立方体

作者: 斋斋好喜欢 | 来源:发表于2019-02-17 19:58 被阅读0次

AKF扩展立方体(Scalability Cube),是《架构即未来》一书中提出的可扩展模型,这个立方体有三个轴线,每个轴线描述扩展性的一个维度,他们分别是产品、流程和团队:

X轴 —— 代表无差别的克隆服务和数据,工作可以很均匀的分散在不同的服务实例上;

Y轴 —— 关注应用中职责的划分,比如数据类型,交易执行类型的划分;

Z轴 —— 关注服务和数据的优先级划分,如分地域划分。

三个维度扩展的对比

通过这三个维度上的扩展,可以快速提高产品的扩展能力,适应不同场景下产品的快速增长。不同维度上的扩展,有着不同的优缺点:

1.X轴扩展

优点:成本最低,实施简单;

缺点:受指令集多少和数据集大小的约束。当单个产品或应用过大时,服务响应变慢,无法通过X轴的水平扩展提高速度;

场景:发展初期,业务复杂度低,需要增加系统容量。

2.Y轴扩展

优点:可以解决指令集和数据集的约束,解决代码复杂度问题,可以实现隔离故障,可以提高响应时间,可以使团队聚焦更利于团队成长;

缺点:成本相对较高;

场景:业务复杂,数据量大,代码耦合度高,团队规模大。

3.Z轴扩展

优点:能解决数据集的约束,降低故障风险,实现渐进交付,可以带来最大的扩展性。

缺点:成本最昂贵,且不一定能解决指令集的问题;

场景:用户指数级快速增长。

如何将理论付诸实践?

1.为扩展分割应用

X轴:从单体系统或服务,水平克隆出许多系统,通过负载均衡平均分配请求;

Y轴 :面向服务分割,基于功能或者服务分割,例如电商网站可以将登陆、搜索、下单等服务进行Y轴的拆分,每一组服务再进行X轴的扩展;

Z轴 :面向查找分割,基于用户、请求或者数据分割,例如可以将不同产品的SKU分到不同的搜索服务,可以将用户哈希到不同的服务等。

2.为扩展分割数据库 

X轴:从单库,水平克隆为多个库上读,一个库写,通过数据库的自我复制实现,要允许一定的读写时延;

Y轴 :根据不同的信息类型,分割为不同的数据库,即分库,例如产品库,用户库等;

Z轴 :按照一定算法,进行分片,例如将搜索按照MapReduce的原理进行分片,把SKU的数据按照不同的哈希值进行分片存储,每个分片再进行X轴冗余。

3.为扩展而缓存

在理想情况下,处理大流量最好的方法是通过高速缓存来避免处理它。从架构层面看,我们能控制的主要有以下三个层次的缓存:

对象缓存:对象缓存用来存储应用的对象以供重复使用,一般在系统内部,通过使用应用缓存可以帮助数据库和应用层卸载负载。

应用缓存:应用缓存包括代理缓存和反向代理缓存,一个在用户端,一个在服务端,目标是提高性能或减少资源的使用量。

内容交付网络缓存:CDN的总原则是将内容推送到尽可能接近用户终端的地方,通过不同地区使用不同ISP的网关缓存,达到更快的响应时间和对源服务的更少请求。

4.位扩展而异步

同步改异步:同步调用,由于调用间的同步依赖关系,有可能会导致雪崩效应,出现一系列的连锁故障,进而导致整个系统出现问题,所以在进行系统设计时,要尽可能的考虑异步调用方式,邮件系统就是一个非常好的异步调用例子。

应用无状态:当进行AKF扩展立方体的任何一个轴上的扩展时,都要首先解决应用的状态问题,即会话的管理,可以通过避免、集中和分散的方式进行解决。


AKF扩展立方体是一套通用的扩展性理论,它不仅可以应用到系统的架构扩展上,也可以应用到人员的组织架构扩展上甚至其他相关的工业领域。

当然并不是所有公司都需要同时在XYZ三个方向上进行扩展,并且每个方向上的扩展都有它的利弊,我们不可避免的要进行适当的权衡。最重要的,我们应当首先理解这套理论背后所体现出来的扩展哲学。

相关文章

  • 可扩展架构的方法论——AKF扩展立方体

    AKF扩展立方体(Scalability Cube),是《架构即未来》一书中提出的可扩展模型,这个立方体有三个轴线...

  • AKF扩展立方体

    AKF扩展立方体(Scalability Cube),是《架构即未来》一书中提出的可扩展模型,这个立方体有三个轴线...

  • AKF可扩展能力立方体模型

    来源于《架构即未来》的AKF可扩展能力立方体模型是软件扩展能力的理论基础,在云计算和微服务盛行的时代,该模型获得了...

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

    看了《架构即未来》这本书,里面提到了AKF扩展立方体。因为一直在做微服务架构方面的设计,这个模型算是对以前经验积累...

  • 架构师成长之路:KF扩展立方体和模块划分原则

    前面已经讲到了高层架构设计落地的第二步:如何进行服务拆分。 接下来聊聊AKF扩展立方体,以及模块划分的一些基本原则...

  • AKF扩展立方

    X轴原则:横向扩展 复制服务或者数据库来分散事务负载. Y原则 将不同的服务数据拆分开来.把各个业务独立开来. Z...

  • 微服务架构设计模式

    扩展立方体: x轴:水平扩展,通过克隆的方式扩展在多个实例之间实现请求的负载均衡。 y轴:功能性分解,通过分解不同...

  • 架构师一定要看微服务设计的四个原则

    微服务的设计原则 AKF原则   业界对于可扩展的系统架构设计有一个朴素的理念,就是:通过加机器就可以解决容量和可...

  • Redis漫谈之主从与哨兵

    Redis 单机的问题 单点故障(用主备解决,AKF 的 X 轴) 容量有限(用分片解决,还可以分实例,AKF 的...

  • AKF架构原则参考2021-03-12

    AKF 最常用的15 个架构原则如下∶

网友评论

      本文标题:AKF扩展立方体

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