-
可能发生的错误一定会发生,所以能尽早想到,就尽早采取措施预防
-
系统默认的环境被人改了,例如有人默认把
python
指向了2或者3 -
各节点时间不一致
-
用语言相关的RPC或者缓存,例如Java RMI或者pickle,导致与语言强相关而提高了耦合度
-
对分布式情况下的远程调用做太多假设,例如以为内网会没什么故障。然而现实告诉你,即便网络没有故障,也许被调用的服务也会 发生故障,不加超时就准备哭吧。其实开发软件,对假设做的越少,稳定性和耦合性就会越低,但是相对应的,复杂度就会提升。软件 开发永远是一种理想和现实的权衡,而权衡下做的选择,只有更好,没有最好。