文章目录
- 一、分布式和集群
- 1.1 分布式和集群的区别
- 1.2 分布式和集群的联系
- 1.3 总结
- 二、细节补充
- 2.1 为什么内容分发网络 CDN 被归类为分布式系统而不是集群?
- 参考资料
一、分布式和集群
分布式(distributed)是指在多台不同的服务器中部署不同的服务模块,通过远程调用协同工作,对外提供服务;
集群(cluster)是指在多台不同的服务器中部署相同的服务模块,构成一个集群,通过负载均衡设备对外提供服务。
1.1 分布式和集群的区别
特性 | 分布式系统 | 集群 |
---|---|---|
系统架构 | 把一套系统拆分成不同的子系统部署在不同服务器上 | 把多个相同的系统部署在不同的服务器上 |
任务处理 | 任务被分解为多个子任务,分别由不同的子系统处理,最后将结果合并 | 任务本身不做任何分解:每个实例执行相同的任务,分担负载,提供冗余 |
节点通信 | 各个节点的通信协调是必须的 | 各个节点之间基本不需要通信协调 |
管理工具 | 通常都需要使用分布式管理和监控工具(如Zookeeper) | 通常需要使用集群管理和监控工具(如Kubernetes) |
数据存储 | 通常涉及分布式存储解决方案(如分布式数据库、文件系统) | 通常涉及集群化的存储解决方案(如数据库集群) |
应用场景 | 提高系统的处理能力,解决单个物理服务器容量和性能瓶颈问题:大规模数据处理、分布式计算、微服务架构、内容分发网络(CDN) | 提高系统的可用性,分担请求压力:高性能计算(HPC)、高可用性服务、负载均衡、容器编排 |
1.2 分布式和集群的联系
集群与分布式并不是互斥的概念,在实际应用中,它们常常结合使用,形成集群的分布式系统。分布式的每一个节点,都可以做集群。
1.3 总结
分布式系统和集群在基础架构、扩展性、高可用性、管理工具和数据存储等方面有很多共同点。它们都依赖于多个节点的协同工作来提高系统的性能、可靠性和扩展性。然而,分布式系统更多地关注任务分解与分配和数据一致性,而集群则侧重于负载均衡和高可用性。
二、细节补充
2.1 为什么内容分发网络 CDN 被归类为分布式系统而不是集群?
内容分发网络 CDN 符合分布式系统的特点:
- 任务分解与分配:在 CDN 中,用户请求被分配到不同的边缘服务器,这些服务器分布在全球各地。任务(即内容的分发和提供)被分解和分配给不同的服务器节点。
- 节点间的协调与通信:CDN 的各个边缘服务器需要与中央服务器或其他边缘服务器通信,以同步内容和管理缓存。这种协调和通信是分布式系统的一个重要特征。
- 地理分布的节点:CDN 的节点分布在全球各地,以便将内容更靠近用户。这种地理分布的节点结构是典型的分布式系统。
注意,这里的任务分解与分配十分类似于负载均衡,但不等同于负载均衡。用户请求是有目的地分配到指定边缘服务器上,而不是均匀地分配到边缘服务器上。
参考资料
什么是分布式,分布式和集群的区别又是什么?这一篇让你彻底明白!_什么叫分布式-CSDN博客
分布式系统的概念、特点及常见方案_分布式的服务特点,服务划分,服务分层-CSDN博客