分布式系统如何实现更高层次的一致性保障?

2026-05-26 12:460阅读0评论SEO教程
  • 内容介绍
  • 相关推荐

本文共计4473个文字,预计阅读时间需要18分钟。

分布式系统如何实现更高层次的一致性保障?

如今使用的多数软件都是分布式系统的一部分,手机上的应用与托管在云中的服务协同工作。托管服务本身即是大规模的分布式系统,通常运行在全球范围内的机器上,处理海量数据。


如今使用的几乎所有软件都是分布式系统的一部分,手机上的应用程序与托管在云中的服务一起工作,托管服务本身就是大规模的分布式系统,通常运行在遍布全球的机器上,大数据系统和大规模数据库分布在许多机器上,大多数科学计算和机器学习系统在多个处理器上并行工作,即使是传统的桌面操作系统以及诸如电子表格和文字处理器之类的应用程序也在与分布式后端服务紧密集成。分布式系统中,多台不可靠的机器并行运行,通过具有任意延迟的网络链路彼此发送消息。怎么能确信这些系统在混乱的情况下能够做到我们想要的呢?

构建正确的分布式系统并不新鲜,一个传统的解决办法是通过保证内存一致性来降低这种复杂性,即确保以受控的方式访问内存(堆变量、数据库等)。然而,用于实施这些机制的分布式协议却通常阻碍了分布式系统的高性能、可伸缩性和可用性。

分布式协议的相关问题

通过分布式协议,自治的且松耦合的机器能够共同决定如何控制基本行为,包括对共享内存的访问顺序。这些协议在分布式计算中被广泛引用,一些著名的技术包括paxos和两阶段提交(2PC)协议等等。

高昂的协调成本

不幸的是,分布式协议的成本可能使它们难以最终落地实施。分布式系统高伸缩性的第一个原则可能就是将一致性机制降到最低,并移出关键路径,或者将其隐藏在系统很少访问的角落,然后让应用程序开发人员难以获得使用它们的许可。

实际上,问题不在于分布式协议难以实施,而是因为分布式协议可以减缓或停止分布式服务中的计算。这些协议的延迟很高,大约为10ms-100ms。

阅读全文

本文共计4473个文字,预计阅读时间需要18分钟。

分布式系统如何实现更高层次的一致性保障?

如今使用的多数软件都是分布式系统的一部分,手机上的应用与托管在云中的服务协同工作。托管服务本身即是大规模的分布式系统,通常运行在全球范围内的机器上,处理海量数据。


如今使用的几乎所有软件都是分布式系统的一部分,手机上的应用程序与托管在云中的服务一起工作,托管服务本身就是大规模的分布式系统,通常运行在遍布全球的机器上,大数据系统和大规模数据库分布在许多机器上,大多数科学计算和机器学习系统在多个处理器上并行工作,即使是传统的桌面操作系统以及诸如电子表格和文字处理器之类的应用程序也在与分布式后端服务紧密集成。分布式系统中,多台不可靠的机器并行运行,通过具有任意延迟的网络链路彼此发送消息。怎么能确信这些系统在混乱的情况下能够做到我们想要的呢?

构建正确的分布式系统并不新鲜,一个传统的解决办法是通过保证内存一致性来降低这种复杂性,即确保以受控的方式访问内存(堆变量、数据库等)。然而,用于实施这些机制的分布式协议却通常阻碍了分布式系统的高性能、可伸缩性和可用性。

分布式协议的相关问题

通过分布式协议,自治的且松耦合的机器能够共同决定如何控制基本行为,包括对共享内存的访问顺序。这些协议在分布式计算中被广泛引用,一些著名的技术包括paxos和两阶段提交(2PC)协议等等。

高昂的协调成本

不幸的是,分布式协议的成本可能使它们难以最终落地实施。分布式系统高伸缩性的第一个原则可能就是将一致性机制降到最低,并移出关键路径,或者将其隐藏在系统很少访问的角落,然后让应用程序开发人员难以获得使用它们的许可。

实际上,问题不在于分布式协议难以实施,而是因为分布式协议可以减缓或停止分布式服务中的计算。这些协议的延迟很高,大约为10ms-100ms。

阅读全文