水平缩放和分布式系统之间的区别是什么



我现在正在学习系统设计。我试着对此进行研究,但我唯一能找到的是Quora上一个解释不清的答案。

1( 水平缩放和分布式系统之间的区别是什么?

2( 水平缩放是否意味着分布式系统?为什么?

3( 垂直缩放也可以被视为分布式系统吗?为什么?

我来这里是为了寻找类似的答案。经过几次阅读和理解,我把我的想法写在下面:

  1. 我将尝试用一个例子来解释这一点:假设我们有一个应用程序,它由不同的微服务(假设有3个微服务m1、m2、m3(。水平缩放尤其是针对特定的微服务进行的。所以如果微型服务m2需要扩大规模(可能是需求的十亿立方米(迎合已经增加了很多(,我们可以添加更多的服务器来支持m2。这边我们做了水平缩放w.r.t m2。

    现在,每当部署在不同服务器上的2个微服务需要交互时在网络上,分布式系统开始发挥作用。从上面的例子来看,m2与m1相互作用或m3与m2相互作用将是通过网络完成,因此将被视为分布式系统。

    负载均衡器用于支持水平缩放,API调用用于支持分布式系统。

    因此,不可否认的是,无论是水平扩展还是分布式系统大部分都聚集在一起。

  2. 但这绝对是不正确的。假设我们只有一个服务部署在5个不同的服务器上使用负载平衡器进行控制。此外,还没有涉及数据库,即我们不需要存储数据,但只进行了少量计算,结果是返回。

    在这种情况下,不同的微服务之间不存在交互在不同的服务器上,尽管存在水平扩展。(5台机器支持该服务(。

    所以在这种情况下,水平缩放是存在的,但不能称为分布式系统

  3. 在垂直缩放中,所有组件仅在单机上运行。不涉及内部沟通。所以不应该考虑垂直缩放分布式系统。

我想提及的资源很少:https://medium.com/system-design-blog/key-characteristics-of-distributed-systems-781c4d92cce3

https://medium.com/@abhinavkorpal/缩放-水平和垂直-用于数据库-a2aef778610c

分布式系统的差异;水平烫伤:

*分布式系统有不同的组件在不同的机器上运行,但在水平缩放中,相同的组件被实例化并在不同的计算机上运行。

*在分布式系统中,组件需要通过网络调用进行通信,但在水平扩展中,机器可以完成整个任务,而无需与其他组件通信。

相关内容

最新更新