天天看點

什麼是Scale Up(縱向擴充)和Scale Out(橫向擴充)?1 Scale Out2 Scale Up3 抉擇

1 Scale Out

即Scale horizontally,橫向擴充,向外擴充 。

稱為叢集系統。指由多個節點組成的系統,這種系統的擴充主要以水準擴充方式(指增加節點的方式)來進行。

Scale-out 通過将多個低性能的機器組成一個分布式叢集來共同抵禦高并發流量的沖擊。

比如向原有的web、郵件系統添加一個新機器。

2 Scale Up

即Scale vertically)縱向擴充,向上擴充。

稱為單節點系統,指系統中隻包括一個有效節點(如果需要HA時,可以将兩個單節點以System Replication形式構成單節點的HA架構)。這種架構的系統隻具有垂直擴充能力,當需要擴充系統時,通過在節點上增加更多的CPU、記憶體和硬碟來擴大系統的能力。

Scale-up通過購買性能更好的硬體提升系統的并發處理能力,

比如:我們向原有的機器增加CPU、記憶體數。

3 抉擇

無論是Scale Out,Scale Up,Scale In,實際上就是一種架構的概念,這些概念用在存儲上可以,用在資料庫上,網絡上一樣可以。

何時選擇Scale-up或Scale-out呢?

一般系統設計初期會考慮使用Scale-up,因為足夠簡單,堆砌硬體解決即可,但當系統并發超過單機的極限時,就要使用Scale-out了。

Scale-out雖能突破單機限制,但也會引入一些複雜問題。比如,

若某節點故障,如何保證 HA?

當多個節點有狀态需要同步時如何保證狀态資訊在不同節點的一緻性?

如何做到使用方無感覺的增加和删除節點?

這些問題的存在與解決也伴随着分布式系統不斷完善發展。

什麼是Scale Up(縱向擴充)和Scale Out(橫向擴充)?1 Scale Out2 Scale Up3 抉擇

參考