庄周梦蝶

生活、程序、未来
   :: 首页 ::  ::  :: 聚合  :: 管理

关于网络的错误假设

Posted on 2009-05-02 13:02 dennis 阅读(1786) 评论(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、只有一个时间,也就是全局时间的问题。


只有注册用户登录后才能发表评论。


网站导航: