1. 首页
  2. > 税务筹划 >

集群分析是什么意思(集群化)

经常听到MyS集群ql集群、Redis集群、分布式系统等概念,但是,很少有机会深究,到底什么集群,什么是分布式?在概念上这俩个词很接近,难道不需要区分?其实,非常有必要区分这两个概念,帮助我们对计算机的理论有更深入的理解。今天,我就尝试去解释一下这两个概念。


定义的区别

计算机集群(英语:computer cluster)是一组松散或紧密连接在一起工作的计算机。由于这些计算机协同工作,在许多方面它们可以被视为单个系统。与网格计算机不分析同,计算机集群将每个节点设置为化执行相同的任务,由软件控制和调度。


维基百科的解释,意思关意思键词是:一组计算机、相同的任务。


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


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


集群和分布式,都是描述的一组计算机。集群的所有节点跑的是同样的任务是什么,而分布式系统的节点跑的是分解后的任务。以修手机为例:维修一部手机要分为检测、维修、测试三个环节,为了提高效率,雇了10位工程师。如果每个工程师维修时,对每台手机进行检测、维修和测试,这就是集群的工作方式。如果2位工程师负责检测,5位工程师负责维修,剩下的3位工程师负责测试,这就是分布式的工作方式。


应用中的区别

在工作中,有时候并没有严格按照概念去理解这两个词。但是,回想一下什么时候用集群这个词,Redis集群、MySql集群、Nginx集群等等,按照上述的定义分析,这些集群里的每个节点,都是跑的同样的业务。微服务平台、云计算平台,这些平台的节点往往跑着不同的业务,组成强大的能力对外提供服务,这就是分布式系统。


集群的关键作用是提升并发处理能力。例如:一台MySql数据库不能满足性能需求,通过分表分库方案,部署多台实例;一个Redis节点不足以支撑业务,多个节点组成集群提高并发处理能力。但凡能够组成集群的,往往都是职责单一,功能目标明确的应用。相对来说,集群化是简单的,对服务几乎无侵入的,通过入口分发负载,应用与应用之间是等价的、无感知的。


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



总结

本文从概念入手,“性格分裂”式的剖析了集群和分布式。我认为,这种剖析有利于理解概念,有利于理解“为什么”。在具体实践中,不能把两者对立起来,复杂的业务系统,往往分析都是两者的结合体。


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


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至123456@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息