微网站开发难度,中国建筑工程师网,安卓软件开发用什么软件,北京手机网站搭建费用在分布式软件环境下#xff0c;为了保障分布式架构的可靠性、可扩展、高性能#xff0c;通常会通过集群、扩容、数据分治等思想来实现#xff0c;比如很多中间件的使用Redis、ZK、Kafka等#xff0c;都可以通过这种设计思想来提高系统架构吞吐量。AKF是一个系统化的拓展思想…在分布式软件环境下为了保障分布式架构的可靠性、可扩展、高性能通常会通过集群、扩容、数据分治等思想来实现比如很多中间件的使用Redis、ZK、Kafka等都可以通过这种设计思想来提高系统架构吞吐量。AKF是一个系统化的拓展思想它从三个维度来实现分布式系统拆分三个维度可以理解为x,y,z轴常见到的各种系统扩展方案都可以归结到 AKF 立方体的这三个维度上。
X轴水平拓展副本也就是复制机器扩容比如做主从复制等。
Y轴业务拆分比如将数据根据业务场景进行划分并将数据分别使用不同的节点处理。
Z轴数据分区比如单类业务就可能存在导致压力问题这时可以通过将该类数据通过一定规则定位不到不同分区节点这些规则可以是Hash取模算法可以是数据区间等等。 以下使用Redis系统使用来说明相关拓展思想。
1、水平拓展x轴
这个比较好理解比如企业有一个商品系统数据信息需要通过Redis实现缓存存储。起初当商品量不是很大时只使用到了一个单机Redis节点。后续商品客户量大了并发量越来越大时可能单台Redis节点吞吐达到了瓶颈。
此时我们可以添加副本通过主从复制读写分离手段来提供更高吞吐量以及保障可靠性。 2、业务拆分y轴
除了以上方式也可以采用业务拆分的手段来实现扩容比如再实现了副本之后随着商品的增长已经满足不了当前性能需求。此时可以通过业务角度进行数据拆分存储比如将商品分为饮食类、工具类、服装类等不同的类型数据存储再不同的节点上同时每个类型商品节点都可以结合水平扩容实现。
注意AKF三个维度思想可以组合使用也可以单独使用主要依赖于系统需求。 3、数据分区z轴
这个就是我们常说的分区思想比如饮食类单类型可能需求量大当前方式也不能支撑了。此时还可以通过数据分区方式将饮食类中的数据依照一定的规则进行分治。比如通过对key进行hash取模相关的取模结果数据放入到同一个节点中。 AKF从三个维度提出了一种拆分思想保障分布式系统架构可靠性、高性能、可扩展。X、Y、Z 轴的扩展并不是孤立的我们可以单一或者组合使用。AKF 提供了一种自上而下的设计思想解决不同场景下面临的瓶颈问题。