IT袋

当前位置:主页 > 经验教程 > 系统教程 >

从零开始理解分布式系统架构与设计原理

从零开始理解分布式系统架构与设计原理(2)

时间:2024-03-25 20:24:34 来源:IT袋 作者:马勇
导读:从零开始理解分布式系统架构与设计原理,系统拆分 不念:哦,这就是分布式系统了?这么简单的么。 我勒个呵呵,哪有那么简单,在 水平扩展 中,我们增加了服务器数量,但是如何让这些服务

从零开始理解分布式系统架构与设计原理

从零开始理解分布式系统架构与设计原理

系统拆分

不念:哦,这就是分布式系统了?这么简单的么。

我勒个呵呵,哪有那么简单,在水平扩展中,我们增加了服务器数量,但是如何让这些服务器像一个整体一样对外提供稳定有效的服务才是关键。

既然已经有了多台服务器,我们就要考虑如何将系统部署到到不同的节点上去。

不念:这还不简单,我将我的 SpringBoot 项目部署到多台服务器上,前面加个 nginx 就可以了,现在我们的系统都是这样的,稳定高效 perfect。给你画个架构图(小声,这个我在学校时就会了。)

从零开始理解分布式系统架构与设计原理

哪有什么岁月静好,只不过是有人在为你负重前行。上面你所认为的简单,其实有两个原因:

  1. 系统分离不彻底,很重要的一点,就是依然在共享一个数据库
  2. 在这个成熟的体系中,有太多成熟的中间件在为我们服务,比如上面提到的 nginx

系统拆分也有两种方式,垂直拆分水平拆分,注意,这里和上面提到的垂直扩展水平扩展不是处理同一个问题的。(不念:哈哈,我知道,世间万物不外乎纵横二字)。

系统的垂直拆分,就是将相同的系统部署多套,所有的节点并没有任何不同,角色和功能都一样,它们各自分担一部分功能请求,这样整个系统的处理能力的上升了。

从处理 web 请求上来看,垂直拆分的每个节点都处理一个完整的请求,每个节点都承担一部分请求量;

从数据存储的角度看,每个数据节点都存储相同的业务数据,每个节点存储一部分数据。

从零开始理解分布式系统架构与设计原理

系统的水平拆分,就是将系统按不同模块或角色拆分,不同的模块处理不同的事情。

从web请求上来看,需要多个相互依赖的系统配合完成一个请求,每个节点处理的需求不一致;

从数据存储角度上来看,每个数据节点都存储着各自业务模块相关的数据,它们的数据都不一样。

相关阅读