分佈式系統的需求和一些缺點

將 Scalabilty 的需求分成兩種:

• Data Scalability: 單臺機器的容量不足以 (經濟的) 承載所有資料,所以需要分散。

如: NoSQL

• Computing Scalability: 單臺機器的運算能力不足以 (經濟的) 及時完成運算,所以需 要分散。

如:科學運算。 在之後幾天,我會試着就這兩種需求來解析其中會遇到的問題與常見解法。

不管是哪一種需求,在決定採用分散式架構時,就幾乎註定要接受一些犧牲:

• 犧牲效率:網路延遲與節點間的協調,都會降低執行效率。

• 犧牲 AP 彈性:有些在單機上能執行的運算,無法輕易在分散式環境中完成。

• 犧牲維護維運能力:分散式架構的問題常常很難重現,也很難追蹤。 另外,跟單機系統一樣,也有一些系統設計上的 tradeoffs

• CPU 使用效率優化或是 IO 效率優化

• 讀取優化或是寫入優化 • Throughput 優化或是 Latency 優化

• 資料一致性或是資料可得性

發佈了31 篇原創文章 · 獲贊 15 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章