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