9. 分布式系统的挑战
分布式系统面临的挑战
1. 分布式系统中的故障
在分布式系统中,故障来自于下面的方方面面:
- 网络分区不可避免 – 网络不可靠
- 时钟和时序问题,时钟无法精确同步 — 时钟不可靠
- 分布式系统中的一个节点必须假设,执行过程中的任何时刻都可能被暂停相当长一段时间,包括运行在某个函数中间。暂停期间,整个集群其他部分都照常运行,甚至会一致将暂停的节点宣告为故障节点,最终暂停的节点可能会回来继续执行,除非再次检查时钟,否则对刚刚过去的暂停毫无意识
让系统容忍失效并不容易,在典型的分布式环境下,没有全局变量,没有共享内存,没有约定的尝试或其他跨节点的共享状态。节点甚至不太清楚现在的准确时间。信息的流动只能通过不可靠的网络来发送。