返回介绍

8. 分布式系统的麻烦

发布于 2024-08-24 16:53:17 字数 1028 浏览 0 评论 0 收藏 0

邂逅相遇 网络延迟 存之为吾 无食我数 ​ —— Kyle Kingsbury, Carly Rae Jepsen 《网络分区的危害》(2013 年)

​ 最近几章中反复出现的主题是,系统如何处理错误的事情。例如,我们讨论了 副本故障转移 ( 处理节点中断 ), 复制延迟 ( 复制延迟问题 )和事务控制( 弱隔离级别 )。当我们了解可能在实际系统中出现的各种边缘情况时,我们会更好地处理它们。

​ 但是,尽管我们已经谈了很多错误,但之前几章仍然过于乐观。现实更加黑暗。我们现在将悲观主义最大化,假设任何可能出错的东西 都会 出错i 。(经验丰富的系统运维会告诉你,这是一个合理的假设。如果你问得好,他们可能会一边治疗心理创伤一边告诉你一些可怕的故事)

i. 除了一个例外:我们将假定故障是非拜占庭式的(参见 拜占庭故障 )。 ↩

​ 使用分布式系统与在一台计算机上编写软件有着根本的区别,主要的区别在于,有许多新的和令人兴奋的方法可以使事情出错【1,2】。在这一章中,我们将了解实践中出现的问题,理解我们能够依赖,和不可以依赖的东西。

​ 最后,作为工程师,我们的任务是构建能够完成工作的系统(即满足用户期望的保证),尽管一切都出错了。 在 第 9 章 中,我们将看看一些可以在分布式系统中提供这种保证的算法的例子。 但首先,在本章中,我们必须了解我们面临的挑战。

​ 本章对分布式系统中可能出现的问题进行彻底的悲观和沮丧的总结。 我们将研究网络的问题( 无法访问的网络 ); 时钟和时序问题( 不可靠时钟 ); 我们将讨论他们可以避免的程度。 所有这些问题的后果都是困惑的,所以我们将探索如何思考一个分布式系统的状态,以及如何推理发生的事情( 知识,真相和谎言 )。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文