【问题标题】:Confused about scalability对可扩展性感到困惑
【发布时间】:2013-02-25 01:08:11
【问题描述】:

根据这句话,如果我设计了一个可扩展的架构,它会在需要时进行扩展,无论采用何种技术。

Languages, libraries and frameworks don't scale. Architectures do.

根据wikipedia scalability page,可扩展性与硬件(节点和内存)有关。

规模是什么意思?应用程序何时真正可扩展?

【问题讨论】:

  • 当你的应用程序的性能随着硬件的增加而尽可能接近线性增加时。
  • 我不知道我会在这样的报价中投入多少股票。它们太模糊和宽泛以至于不能是真的(或假的)。现实总是更复杂。

标签: architecture scalability


【解决方案1】:

“语言、库和框架无法扩展。架构可以。”

这是一个真实的陈述。因为,语言、库和框架应该被视为架构实现的“工具”。

让我详细解释一下,在良好的架构中 - 组件(如语言、框架等)可以替换或互换。例如许多开源项目实现有不同的语言版本。

就这些架构的可扩展性而言,因为这些架构是建立在语言/框架/库的通用特性集之上的,所以这些架构可以很好地扩展。

请注意,系统的性能与系统的可扩展性有很大不同。

【讨论】:

    【解决方案2】:

    可扩展性通常是分布式系统的一个属性,其中有多个用户(例如网站),但这不是必需的。可扩展性可能涉及硬件选项(例如,增加服务器内存或 CPU 能力以同时处理更多用户),但在你的情况下,我认为这句话的意思是你应该使用一种架构(软件架构)来开发你的软件独立于用于构建该软件的工具(因此是语言、框架和库)。例如,使用分层架构或其他使应用程序可扩展的著名软件架构来开发您的软件。 注意:这是我的个人观点,并不基于任何正式或科学的定义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多