可用性和扩展性:三层或两层

可用性和扩展性:三层或两层

我开始研究一个三层物理网站(UI:MVC / 应用程序:REST / DB),我一直认为三层比两层更具可扩展性(对于高流量网站来说是禁忌),但最近我知道一些知名的网站是两层网站而不是三层,而且似乎运行得很好。

那么,情况是怎样的呢,如何决定两个是否比三个更好地为您服务(总体而言)。我打算建立的网站是公共的,但相对较小,而且我预计流量会很高。

有任何想法吗?

答案1

这需要进行大量的应用程序分析。在确定给定系统的扩展能力时,有几个问题需要问自己,以帮助确定扩展的痛点:

  1. 如果我突然发现流量增加了一个数量级,我会在哪里发现问题?我该多快解决这些问题?
    1. 两个数量级怎么样?
  2. 如果我的网站以量级增长持续一年,我会在哪些方面看到因规模而产生的问题?

这些问题将帮助您找出可能让您陷入困境的单点,并确定需要过多资源才能扩展的层级。有些事情很难建模,例如一年的数据库增长量以及这对数据库性能的影响。其他事情则很容易,例如应用服务器性能。

这有助于进行 2 层或 3 层分析,因为它会让您知道是否需要将前两层分开,并帮助您确定在多大程度上需要分离第一层。如果看起来一年内两个数量级的增长会导致第一层出现问题,请将 1/2 层设计为稍后拆分,并在需要时稍后进行拆分。

相关内容