DDIA(数据密集型应用系统设计) 读书笔记-第八章

451 阅读1分钟

image.png 本章和第九章是上下篇的关系。主要是抛出一些问题,给引起问题的根源以及简单的解决方法。所以本章内容不是很多,做一个介绍而已,核心内容在下一章

问题

根源

分布式系统所有问题的根源都是来自于不可靠网络和不可靠时钟。不可靠网络导致对远端节点状态不知情况引起通信问题。不可靠时钟则会导致服务状态一致性问题以及由此引发的业务问题。有点像黑暗森林,一切都是未知的。

检测

检测手段只能检测出网络问题,也就是依靠超时检测节点是否正常

真相与谎言

针对本章给的一些问题,作者给出了一些解决方式

  • 共识算法保证系统的一致性

  • Fencing令牌保证分布式锁在时钟问题情况下依然可靠

  • 拜占庭故障

    非可信环境下,只能通过业务手段进行一定的保障。数据可信保证,主要是借助TCP/UDP检验机制,在业务层面增加校验和;输入数据进行业务层面的可控检测,防止分配超大内存。时间一致性保障,配置多个NTP服务,业务层面评估时间偏差,在一定范围内达成一致。