集群和分布式,你知道其中的区别吗?

珠江路在线   2019年11月18日  【 转载 】咔咔侃技术 编辑:

时常听到MySql集群、Redis集群、 分布式系统等概念,然而,很少有机会深究,到底什么集群,什么是 分布式?在概念上这俩个词很接近,难道不需求 划分?其实,十分有必要 划分这两个概念,协助我们对计算机的 实际有更 深刻的 了解 。今日,我就尝试去解释一下这两个概念 。

定义的区别

计算机集群(英语:computer cluster)是一组 涣散或密切衔接在一起工作的计算机 。因为这些计算机协同工作,在许多方面它们 能够被视为单个系统 。与网格计算机不同,计算机集群将每个节点设置为执行 雷同的 使命,由软件操纵和调度 。

维基百科的解释, 要害词是:一组计算机、 雷同的 使命 。

分布式系统是一组电脑,透过网络 彼此衔接传递 信息与通讯后并协调它们的行为而 构成的系统 。[1]组件中间彼此进行交互以实现一个一起的 指标 。把需求进行大量计算的工程数据分割成小块,由多台计算机分别计算,再上传运算 后果后,将 后果统一合并得出数据 论断的科学 。

维基百科的解释, 要害词是:一组计算机、大计算分解 。

集群和 分布式,都是 形容的一组计算机 。集群的全部节点跑的是同样的 使命,而 分布式系统的节点跑的是分解后的 使命 。以修手机为例:维修一部手机要分为检测、维修、测试三个环节,为了 遍及效率,雇了10位工程师 。假如每个工程师维修时,对每台手机进行检测、维修和测试,这便是集群的工作 模式 。假如2位工程师负责检测,5位工程师负责维修,剩下的3位工程师负责测试,这便是 分布式的工作 模式 。

利用中的区别

在工作中,有时候并没有严格依照概念去 了解这两个词 。然而, 回忆一下什么时候用集群这个词,Redis集群、MySql集群、Nginx集群等等,依照上述的定义 综合,这些集群里的每个节点,都是跑的同样的业务 。微服务平台、云计算平台,这些平台的节点一般跑着不同的业务,构成 壮大的 威力对外提供服务,这便是 分布式系统 。

集群的 要害作用是 晋升并发 解决 威力 。例如:一台MySql数据库不能满足性能需求,通过分表分库 方案,部署多台实例;一个Redis节点缺乏以 支撑业务,多个节点构成集群 遍及并发 解决 威力 。 但凡 能够构成集群的,一般都是职责单一, 性能 指 表明确的 利用 。 绝对来说,集群化是 容易的,对服务 几乎无侵入的,通过入口 散发负载, 利用与 利用中间是等价的、无感知的 。

分布式的 要害作用是解耦以便于 快捷迭代 。单机版 利用能不能做的很 壮大、很复杂?固然 能够!十几年前的SAP、Oracle ERP软件,这些业务巨复杂的系统,都是 能够部署在一台服务器上的 。通过模块化、SOA等设计理念,工程师们也 能够协同工作写出复杂的 利用 。这些软件可能一年才需求 晋级一次,但互联网 利用 几乎每周都在发版 晋级,显然这种开发模式在互联网领域并不 实用 。通过把 性能模块拆分出来,部署在不同的节点,按节点进行 晋级,实现 快捷迭代 。

通过上面的讲述,这种 实际模型的 分布式,和 实在的 分布式还是不同 。没有谁见过 分布式系统中的业务模块,是单节点部署的 。是的,没有错, 事实中的 分布式系统,其实是 分布式+集群的综合体 。这样的模式, 联合了两者的优势,即实现了解耦,又做到了高并发 威力, 圆满 照应了互联网对 利用的需求 。 其余的概念,高可用、 统一性等,都是在 分布式+集群的理念上,进展出来的解决具体问题的 步骤论 。

集群和

分布式,你晓得其中的区别吗?

总结

本文从概念 动手,“ 性格 决裂”式的 分析了集群和 分布式 。我认为,这种 分析有利于 了解概念,有利于 了解“为何” 。在具体 实际中,不能把两者 对抗起来,复杂的业务系统,一般都是两者的 联合体 。

针对我的 了解,你有什么想说的吗? 欢送拍砖 。