📜  比例立方体

📅  最后修改于: 2022-05-13 01:56:52.179000             🧑  作者: Mango

比例立方体

通常,应用程序在开始时是单体构建的。当用户数量较少且流量非常低时,单体应用程序非常好。但是,当流量增加时,系统会过载并变慢,从而导致性能不佳、延迟和系统崩溃。

根据 AKF Scale cube 模型,为了实现可扩展性,应用程序需要在 3 个维度上进行缩放。即 X、Y 和 Z。这种方法可用于无限扩展应用程序。

比例立方体

X 轴缩放 - 复制和克隆

它是复制和克隆的应用。它包括运行多个执行相同任务的应用程序或存储相同数据的克隆数据库。这些副本在负载均衡器后面运行。负载均衡器在所有克隆系统之间平均分配负载。这是扩展应用程序的一种非常常见且易于理解的方法。

X 轴缩放的优点 –

  • 这在智力上很容易
  • 它体面地处理交易的扩展
  • 实施速度非常快

X 轴缩放的缺点 –

  • 由于使用了多个数据库克隆,因此设置成本很高
  • 它也不能有效地支持缓存。缓存需要更多内存。
  • 它不支持组织扩展
  • 它不支持应用程序的复杂性和不断增加的开发

Y 轴缩放——分割不同的东西

它将应用程序拆分为多个单独的服务。一个服务只负责一个函数。当这些服务进一步分散分布时,它还可以进一步细化和松散耦合。微服务架构主要是 Y-Scaling 的应用。有许多方法可以分解应用程序。广义上讲,有两种:基于动词(一项服务负责实现一个用例)和基于名词(一项服务负责处理所有操作并属于单个实体)。一个好的方法是混合使用两者。

Y 轴缩放的优点 –

  • 它允许组织扩展
  • 故障隔离,测试调试方便
  • 缓存命中率显着提高
  • 交易规模大

Y 轴缩放的缺点 –

  • 需要大量的分析和智慧才能找到适合应用的完美分解
  • 实施需要时间

Z 轴缩放 - 拆分相似的东西

它与 X-Scaling 非常相似,因此很困惑。在这里,每个副本都运行相同的代码副本。但是每个副本都没有做完全相同的事情。工作量分布在它们之间。一个副本仅适用于数据子集。应用程序的一部分将每个请求路由到适当的服务器。可以在地理基础上进行以提高响应速度。它也是根据客户来完成的。例如,应用程序的特权客户将被路由到一组更快的服务器。就像有很多下载服务器限制了非付费客户的下载速度一样。

Z 缩放的优点 –

  • 它在智力上很容易实现它减少了服务器处理的内存使用量和流量
  • 它还非常显着地增加了缓存命中
  • 随着请求的分布,它改进了事务扩展
  • 它还改进了故障隔离,因为服务器故障不会使数据的所有部分都无法访问

Z 缩放的缺点 –

  • 实施需要时间
  • 它没有谈论组织规模
  • 它需要自动化来减少跳数