本章和第九章是上下篇的关系。主要是抛出一些问题,给引起问题的根源以及简单的解决方法。所以本章内容不是很多,做一个介绍而已,核心内容在下一章
问题
根源
分布式系统所有问题的根源都是来自于不可靠网络和不可靠时钟。不可靠网络导致对远端节点状态不知情况引起通信问题。不可靠时钟则会导致服务状态一致性问题以及由此引发的业务问题。有点像黑暗森林,一切都是未知的。
检测
检测手段只能检测出网络问题,也就是依靠超时检测节点是否正常
真相与谎言
针对本章给的一些问题,作者给出了一些解决方式
-
共识算法保证系统的一致性
-
Fencing令牌保证分布式锁在时钟问题情况下依然可靠
-
拜占庭故障
非可信环境下,只能通过业务手段进行一定的保障。数据可信保证,主要是借助TCP/UDP检验机制,在业务层面增加校验和;输入数据进行业务层面的可控检测,防止分配超大内存。时间一致性保障,配置多个NTP服务,业务层面评估时间偏差,在一定范围内达成一致。