什么是分布式系统?
发布: (2026年5月5日 GMT+8 05:43)
3 分钟阅读
原文: Dev.to
Source: Dev.to
Introduction
“分布式系统”是当今常用的概念。第一次遇到它时,可能会觉得令人望而生畏,但其核心思想很简单,在构建此类系统时能够带来清晰的思路。
Historical Context
当软件从理论可能性转变为实际可行时,架构非常直接:应用程序在单台计算机上运行,所需的数据库也在同一台机器上,直接在该主机内部进行通信。
随着计算机性能的提升,社会对它们的依赖日益加深——这通常被称为 数字化转型。
Availability Challenges
在这种转型过程中,软件需要:
- 可用——用户想使用时系统能够提供服务。
- 正确——返回一致的结果。
把所有东西都运行在一台计算机上会带来两大可用性风险:
- 整体崩溃——如果这台唯一的机器出现故障,整个系统就会宕机,即使故障与应用或数据库本身无关。
- 服务降级——如果机器承受的负载超过其承受能力,它可能会变慢而不是直接崩溃,同样影响可用性。
Moving to Multiple Machines
为避免单点故障,解决方案是将组件分布到多台机器上。如果其中一台机器宕机,只会影响系统的一部分。
当应用运行在 机器 A 上,数据库运行在 机器 B 上时,它们必须通过网络进行通信。这种节点之间的通信就是分布式系统的本质。
Definition
简而言之,分布式系统是一组通过网络相互通信以实现特定目标的机器(节点)。
Ongoing Challenges
虽然分布式系统支撑了当今的大型平台,但它们也带来了诸如:
- 节点故障(例如机器 A 在收到机器 B 的响应之前就宕机)。
- 网络分区和延迟。
这些挑战提醒我们没有灵丹妙药;细致的设计和工程实践至关重要。