先给出我理解的定义分布式是一组通过网络互连的计算机组成的系统;集群是指为完成一个或者一组相关任务的分布式系统。
上图是分布式的架构,四个节点相互连接;分布式只是表达一种拓扑关系不涉及到具体的业务。
现在为抽象的拓扑结构叠加上应用(让它可以实际工作起来),比如其中一台机器承担负载均衡的角色。这就是集群——即,为完成实际的任务而互联的一组计算机。一般来说有几类“任务”(目标):
高可用,其中一台服务器挂掉不影响整个系统的正常运行。比如 Keepalived
负载均衡,工作负载被分配到不同机器上执行。比如 LVS
高性能计算,对一个大任务分解,利用多个节点的资源组合完成计算。比如 Hadoop
网格计算,以共享存储为基础,多个节点共同完成计算任务。在这个结构中所有节点都是对等的。比如 Oracle RAC。
我们常说的 Master Slave 架构其实是一种集群架构模式,上面列表中的高可用、负载均衡、高性能计算都属于这种架构模式。简单来说:分布式是一个抽象概念,集群是具体实现。一个集群系统一定是分布式的,而分布式未必是集群(比如互联网是分布式系统,但是它不是集群)
我的第一个线上课程在gitchat上线了,希望喜欢我的新朋友、老朋友多多支持;只要19.9元你不但能搞清楚区块链是什么,而且能开发基于区块链的应用。无论是茶余饭后吹牛,还是真刀真枪混饭吃,这个课程你都值得拥有。课程地址:http://gitbook.cn/gitchat/column/5b1798c0a6e54424e9335528或者二维码
领取专属 10元无门槛券
私享最新 技术干货