在本文中,我们将探讨在处理分布式系统时,人们容易犯的一些常见错误。从假设网络始终可靠,到认为问题很少发生,这些误区都可能导致巨大的故障。我们将学习如何避免这些陷阱,并让我们的系统更加健壮。
分布式系统谬误的重要主题
- 谬误 1:网络是可靠的
- 谬误 2:延迟为零
- 谬误 3:带宽是无限的
- 谬误 4:网络是安全的
- 谬误 5:拓扑结构不会改变
- 谬误 6:只有一个管理员
- 谬误 7:传输成本为零
- 谬误 8:网络是同构的
- 谬误 9:系统是单体式的
- 谬误 10:系统是完全可观测的
- 谬误 11:系统始终在线
- 谬误 12:只有一个根本原因
- 谬误 13:故障很少发生
让我们来看看分布式系统都有哪些不同的谬误:
谬误 1:网络是可靠的
在运行分布式系统的网络中,最致命的错误莫过于认为网络将始终无故障地运行。
- 网络本质上容易受到各种故障的影响,例如数据包丢失、延迟和连接中断。这些情况可能由硬件故障、软件问题或物理干扰引起。
- 为了降低风险,我们别无选择,只能采用一种灵活、可靠的机制,并具备适当的重试和冗余功能。
谬误 2:延迟为零
认为收集的数据可以在网络中瞬间传输的说法,在现实中是不存在的。
- 延迟因素归因于多种原因,例如与目的地的距离、网络拥塞,以及最后产生的处理延迟。
- 由于分布式系统依赖于数据传输路径,而高延迟通常会对其产生影响,因此设计人员需要考虑到这一点,并着眼于使用缓存和异步通信等技术来最小化延迟。
谬误 3:带宽是无限的
相反,无限的带宽只能连接最初的那几个客户,因为当它覆盖到整个城镇时,消费者可能已经收到产品了。
- 在世界各地,带宽是指在相同时间段内可以通过网络路径传输的数据量。对于高节奏的应用程序来说,它可能是一个限制速率的因素。
- 围绕压缩、数据编码和数据优先级划分的相关带宽管理因素,对于系统的性能至关重要。
谬误 4:网络是安全的
认为网络本质上是安全的,会给部署节点的系统引入漏洞,或者无法保护它们免受最大胆的威胁。
- 通信网络可能会被窃听、破坏,并成为恶意行为者攻击的目标。
- 保证网络安全涉及应用加密、身份验证和授权技术,以及提供安全审计和修补,以维护数据完整性和机密性。
谬误 5:拓扑结构不会改变
网络的拓扑结构代表了网络中不同实体的位置,它不是一个孤立的元素。
- 适应新节点的添加、现有节点的故障或配置的更改是经常发生的事件。
- 系统倾向于使用路由技术、负载均衡和自愈能力来处理瞬态拓扑,这有助于将系统保持在最佳性能和可靠性模式。
谬误 6:只有一个管理员
设想有一个控制中心负责在整个地方部署分散的系统是不切实际的。
- 分布式系统通常跨越多个管理领域运行,不可能有针对所有系统的统一政策和管理实践。
- 这些领域需要协调,使沟通渠道明确,协议统一,并共享领导结构。
谬误 7:传输成本为零
如果不小心处理数据的位置,可能会导致补偿过度和效率低下。由网络带宽使用和功耗产生的传输成本是我们必须考虑的因素。