当前位置: 首页>后端>正文

分布式系统的八大谬误

1.网络是可靠的

你不能假设网络是可靠的,也不担心网络问题。事实是,网络比以前更可靠。然而,它们并不100%可靠。在设计和编写应用程序时,不要忘记考虑网络故障。

2.延迟为零

想象一下,同一台计算机上的两个应用程序相互交谈。在这种情况下,延迟将接近零,但不会是零。如果我们在应用程序之间引入网络,延迟将始终大于零。

延迟是您应该注意并监控应用程序的一个重要指标。延迟会对用户体验和性能产生重大影响。

3.无限带宽

起初,可能看起来有足够的带宽。然而,当一个系统有数十或数百个服务时,来回发送的通信和数据量会显著增加。例如,据预测,自动驾驶汽车每小时将产生400 GB到5 TB的数据。在设计应用程序时要考虑到带宽的使用。

4.网络是安全的

这种谬论可能是致命的。在设计应用程序时,安全性和采用深度防御方法必须是重中之重。这不是你的系统是否会受到攻击的问题;而是何时会受到攻击的问题。

5.拓扑不会改变

事实上,当您在计算机上运行应用程序时,拓扑结构不会改变。但是,当您将应用程序部署到云端时,网络拓扑就无法控制。云提供商升级和更改网络设备,关闭机器并创建新机器,等等。你不能依赖云中的恒定拓扑。

6.有一个管理员

过去,通常只有一个人负责维护环境、安装和升级应用程序等。然而,随着向现代云架构和DevOps实践的转变,这种方法发生了变化。

现代云原生应用程序由许多服务组成,一起工作,但由不同的团队开发。一个人几乎不可能了解和理解整个应用程序,更不用说尝试解决所有问题了。

建立治理,以便于对出现的任何问题进行故障排除。发布管理、解耦、日志记录和监控等概念适用于这里。

7.运输成本为零

您可以通过两种方式考虑运输成本:

与大多数云提供商建立网络是有成本的。有时,网络入口是免费的。然而,当您将数据从云提供商的网络中移出时,网络出口会付出代价。

对象序列化和反序列化是有成本的。就性能而言,这两种操作都可能很昂贵。

8.网络是同质的

网络不是同质的或同类的。相反,网络是异构的。你不能假设网络硬件总是保持不变。关键是专注于标准协议,以便组件可以通信,无论硬件如何。


https://www.xamrdz.com/backend/3az1941330.html

相关文章: