2023/11/06

分布式計算的謬論 (The Fallacies of Distributed Computing)

Sun MicroSystem 的幾位工程師,提出了分散式系統的八個謬論,是一般開發人員,對於分散式系統的錯誤認知假設,有了這些基本的認知錯誤,設計的系統常會發生一些不能預期的問題。

前四個是 Bill Joy 與 Dave Lyon 定義的,後來 Peter Deutsch 增加了 5,6,7 三個,最後 James Gosling 定義了第八個。

  1. 網路是可靠的

    任何透過網路的遠端系統呼叫,都有可能會發生意外而失敗。為了處理遠端系統可能的離線異常,通常會帶入 MQ 系統,將遠端呼叫的需求放入 MQ,然後自動 retry,但加入了 MQ,就會用非同步的方式,處理一開始的 Request,這會直接影響原始的系統設計。

  2. 延遲是零

    網路因為頻寬的限制,以及客戶端到伺服器端的距離,一定會發生資料傳遞的延遲。

    傳統的電話線路是獨佔式的,一條線路只能讓一通電話使用。網路電話是不同的,需要經過語音及類比、數位轉換,然後透過分享的網路線路進行封包傳送,網路電話的延遲通常會比傳統電話還要大。

  3. 頻寬是無限的

    網路封包是透過無線電或網路線傳送,但實體的傳送媒體,都會因為該傳輸媒體及資料轉換機制,而有資料傳送速度的限制。在處理大資料量的應用,例如網路電話,直播等等,更需要注意頻寬限制的問題。

  4. 網路是安全的

    網路技術會進步與更新,但網路攻擊的技術也同時在進步,網路攻擊一定存在,也不存在無法被攻擊的系統,系統只能應付攻擊,而做對應的處理。

  5. 拓撲結構不會改變

    機器與連線的配置與架構會不斷改變,當系統故障/更新時,會需要改變現有的系統架構。

  6. 有一個管理員

    任何地方都可能會出錯,當系統發生問題,沒有一個管理員可以知道所有的狀況,並能了解所有的問題。

  7. 運輸成本為零

    因為需要有頻寬、伺服器、網路、Load Balancer、防火牆等等網路架構與機制,所以網路服務都是需要花錢的,沒有能夠免費提供的服務,但現在能使用免費網路服務的原因,都是因為公司用另一個方式,取得了營運資金,用來支撐免費的服務。

  8. 網路是同質的

    網路是透過各種協定交互運作組成的,如果是開放的標準通訊協定,可在不同系統上交互運作,如果是自訂的通訊規格,就可能會發生無法相容的問題。

References

驾驭分布式计算的8个谬误 - 掘金

# 圖說分佈式計算的 8 大謬誤

分布式系统中经典的八个谬误-51CTO.COM

沒有留言:

張貼留言