对于开发者来说,在开发一个新的分布式应用时,出于简化系统或者因为考虑浅周全等原因,总是会或多或少地会做一些一厢情愿的假设。对于这些假设,Peter Deutsch大神和Sun微系统团队结合数十年的研究和编码经验,为我们作了完整的总结和阐述。这八点谬论基本上是开发分布式应用时需要考虑和解决的问题,认识和理解这些谬论可以帮助我们在开发分布式应用时,尽可能避免踏入这些陷阱,而在将来承受巨大的学习代价。

The Eight Fallacies of Distributed Computing


Peter Deutsch

Essentially everyone, when they first build a distributed application, makes the following eight assumptions. All prove to be false in the long run and all cause big trouble and painful learning experiences.
  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
    ...

Essentially everyone, when they first build a distributed application, makes the following eight assumptions. All prove to be false in the long run and all cause big trouble and painful learning experiences.
基本上每个人,当他们一开始构建一个分布式应用的时候,作了以下八种假设。在接下来的运行中,它们一个个都将被证明是不合理的,几乎都会导致大麻烦和经历痛苦的学习过程。

  1. The network is reliable
    网络是可靠的
  1. Latency is zero
    延时是不存在的
  1. Bandwidth is infinite
    带宽是无限的
  1. The network is secure
    网络是安全的
  1. Topology doesn't change
    (网络)拓扑是不变的
  1. There is one administrator
    管理员是单一的
  1. Transport cost is zero
    传输是无代价的
  1. The network is homogeneous
    网络是同质的