加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 电商 > 正文

十分钟明白分布式架构的一生一世

发布时间:2021-05-27 18:09:54 所属栏目:电商 来源:互联网
导读:有人认为,分布式就是分模块进行开发,分模块进行部署,分布式的核心就是分模块。但分模块并不是分布式的概念,早在上世纪90年代,就有人提出了按照模块划分软件

有人认为,分布式就是分模块进行开发,分模块进行部署,分布式的核心就是分模块。但分模块并不是分布式的概念,早在上世纪90年代,就有人提出了按照模块划分软件功能。这在软件工程上,分模块可以更好地进行解耦,在工作中,分模块也可以更好地进行分工。虽然分模块进行开发,但是他们仍然部署在相同的机器上。随着软件的发展尤其是互联网的发展,传统的单体架构越来越不行了,主要表现为以下三个方面:

性能问题,在早起的互联网行业中,硬件的发展非常迅速,几乎每一代新的电脑芯片,都能比上一代性能翻一番,但是,随着摩尔定律的失效,硬件的提升已经更不上软件行业的发展,我们常常说因特尔挤牙膏,因为现在芯片的性能要翻一番需要好几代产品了。所以,单体的架构的性能问题就爆发出来,无法跟上时代的脚步。

难以扩展,原来各个模块上只是逻辑上的隔离,但仍然部署在同一台机器。各个模块之间,用着永洋的物理内存,同样的硬盘,同样的网卡,实际上各个模块依赖非常密切,就像一台精密的机器,有成千上万个齿轮,每一个模块的变动都会带动其他齿轮的转动。

系统可用性低,不难想象,所有的模块都不熟在同一个机器上,如果有一个模块出问题,例如突然占满整个磁盘、或者内存泄漏,都会影响系统上的其他模块,从而造成整个系统的崩溃。

相对于传统的单体结构,分布式的最重要的有点有下面几点:

更容易开发跟实现新功能,在传统的单体结构中,模块之间的依赖是非常严重的,你要实现一个功能,还需要评估对其他模块的影响。而在分布式的设计中,模块与模块之间,是通过接口来进行交互,一个模块的内部实现对另外的模块来说是透明的,影响更小。

单点故障的影响氛围更小,传统的单体架构的存在的一个严重问题,就是一个模块的故障容易引起整个系统不可用。举个简单的例子,在电商系统中,评价系统可能不是那么重要,结果有一天评价系统故障内存泄漏,造成机器不断重启,就非常可能影响部署在同一台机器上的其他应用。分布式部署则可以大大地降低故障的概率,当然,分布式也会有故障问题,这就需要优秀的分布式架构师设置合理合适的框架,合理地进行部署,来规避单点故障带来的大面积故障。

系统吞吐量更大,以往的单点部署模块,受限于单台机器的性能。在分布式架构中,对于有性能瓶颈的模块,我们可以采用异步或者部署更多的机器,解决单机性能瓶颈的问题又提高了机器的利用率。举个简单的例子,数据库模块,对磁盘的性能及容量要求更高,我们可以部署在磁盘更好的机器,对于缓存这种对CPU、内存容量要求更高的机器,从而达到机器更高的利用率。

十分钟明白分布式架构的一生一世

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读