Posted on 2009-05-02 13:02
dennis 閱讀(1792)
評論(0) 編輯 收藏 所屬分類:
計算機科學與基礎
每個第一次構建分布式系統的人都可能會做出8個錯誤的對網絡的假設:
1. |
The network is reliable |
2. |
Latency is zero |
3. |
Bandwidth is infinite |
4. |
The network is secure |
5. |
Topology doesn't change |
6. |
There is one administrator |
7. |
Transport cost is zero |
8. |
The network is homogeneous |
翻譯過來就是:
1、網絡是穩定可靠的
2、沒有延遲
3、帶寬無限
4、網絡是安全的
5、網絡拓撲不會改變
6、只有一個管理員
7、傳輸成本為0
8、網絡是均勻的,現實是各種網絡環境都有。
更多錯誤假設:
1、網絡IO跟磁盤IO一樣
網絡IO比之磁盤IO更不可預測、不可靠和不可控,網絡IO包括了軟硬件兩方面的限制。
2、你與對端能夠同步
你無法假設對端是否關閉、接收到數據,這些通常需要你在應用協議里同步。
3、所有的錯誤都可以被檢測到。
很多錯誤例如對端關閉引起的讀阻塞都需要應用層來處理。
4、資源無限可用。
5、應用可以無限等待一個遠程服務
任何大規模的應用都需要慎重設計超時、過期策略
6、遠程服務總能響應及時。
7、只有單點失敗
8、只有一個資源分配器
9、只有一個時間,也就是全局時間的問題。