分布式系统八大问题

分布式应用大多数都运行在复杂的环境中。 这也导致了其更容易比单体服务发生问题。早在20世纪90年代在Sun MicroSystem中就被提出了分布式系统的八大谬论。 在这里我们来认识下这八大缪论是什么?

  • 网络是可靠的

  • 延迟为零

  • 带宽是无限的

  • 网络是安全的

  • 拓扑不会变

  • 只存在一个管理员

  • 传输代价为零

  • 网络是同质的

网络是可靠的

在局域网中,网络看起来是可靠的。 毕竟,随着硬件技术以及底层通信技术的发展,网络组件具有更高的可靠性。而且即使单一的组件出现故障,还有很多冗余,但情况确实如此吗? 随着网络环境的越来越复杂,网络管理员很可能犯错误,尤其是在网络配置上。某些情况下,高达1/3的网络更改会导致网络的可靠性故障。软件和硬件都可能出现故障,尤其是路由器, 它占到所有故障的1/4左右。 “不可中断”的电源供应有可能出现断电、管理员可能进行不明智的网络设备更改、可能出现网络阻塞、可能遇到DDos攻击,以及软件和防火墙的更新或 布丁失败。 网络会因为自然和非自然的因素导致故障, 设计一个能应对这些情况的网络需要很高的技巧。 尤其是在分布式系统中,跨数据中心,跨城市的网络通信更容易出现故障。

延迟为零

延迟和带宽不同,延迟是指花费在应答上的时间。常见的延迟除了服务器处理延迟,还有网络延迟,包括传输延迟、节点延迟和阻塞延迟。我们也可以通过ping命令在操作系统上进行 测试。 如ping www.baidu.com

带宽是无限的

虽然大多数现在电缆可以应对无限带宽,另外最近随着5G技术的发展,带宽已经达到了一个比较高的水准,但这样就能理解带宽是无限了吗? 绝大多数的分布式系统目前还遭受 着带宽占满,被限流的痛苦。 目前绝大多数数据中心也仅仅是万兆带宽,而互联网、大数据时代,由于信息的爆炸增长,对带宽的需求也在不断的增加。

网络是安全的

网络安全的问题,一直都是安全人员面临的一个重大挑战,同时也有很多措施被安全人员所提出来。尽管如此,每年还是有数以亿计的损失发生在网络安全领域。数据加密的技术与风控 系统也在快速的发展,以适用互联网时代的数据安全挑战。

拓扑不会改变

恰恰相反,拓扑不仅会变化,而且是经常性的发生变化。 尤其在高速成长的业务中,系统的拓扑结构每天都在发生巨大的变化。 所以拓展性是分布式系统设计中非常核心的一个特性。 一个不能很好拓展的系统,不是合格的分布式系统。

只存在一个管理员

由于分布式系统的复杂性,往往在一个分布式系统当中存在多种角色,而这多种角色中又包含多个管理员。

传输代价为零

传输代价显然不是零,我们通过使用云计算厂商提供的存储服务就知道,很多对象存储,都是以传输进行收费,比如下行流量。

网络都是同质的

今天,或许已经很少见到同质网络了。 由于在分布式系统中,硬件、操作系统、传输协议等的不同,网络更多的是以异构的形式存在。

小结

正因为具有以上谬论,所以我们在设计分布式系统的时候,坚决不能做以上假设,否则可能导致灾难性的后果。

Last updated