集群、分布式概念理解

298 阅读6分钟

引言:铁子的粗鄙理解

集群就是一堆机器。这些机器通过网络连接在一起,然后干一些事情。
主要分两种:

  1. “拷贝”:比如:应用 A 部署了 100 台机器(节点),每台机器的功能都是一样的,每一个节点就是一个完整的 A。
  2. “切片”:比如:数据库 A 有 100 个节点,每个节点存储一部分数据,所有节点加起来才是具有完整数据的 A。(应用也是一样的,比如把一个功能放到 100 台机器上执行,每台机器执行一部分功能)

让咱 AI 哥润色一下:

集群确实可以视为通过网络连接在一起的一组机器,它们协同工作以完成特定任务。下面是对您描述的两种集群类型的润色:

  1. 拷贝集群:在拷贝集群中,例如应用 A 部署在 100 台机器上,每台机器作为一个节点,都运行着相同的功能。每个节点都是独立且完整的 A 应用实例,共同分担工作负载,提升整体性能和可用性。
  2. 切片集群:在切片集群中,例如数据库 A 由 100 个节点组成,每个节点负责存储数据的一部分。只有当所有节点联合起来时,才能提供完整的数据库 A 数据集。同样,这种模式也适用于应用,比如将一个复杂的功能拆分到 100 台机器上执行,每台机器负责该功能的一部分,共同完成整个应用流程。

还得是咱 AI 哥。

好的集群当然是既拷贝,又切片。比如咱用的 DRDS(阿里云分布式关系型数据库服务 DRDS),先把数据拆分到很多个节点上,然后每个节点在主备一下。

AI 说

啥是集群啊?

集群(Cluster)指的是一组相互独立的计算机,它们通过高速通信网络连接起来,共同构成一个较大的计算机服务系统。每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器。这些服务器之间可以彼此通信,协同向用户提供应用程序、系统资源和数据,并以单一系统的模式加以管理。当用户请求集群系统时,集群给用户的感觉就像是一个单一独立的服务器,但实际上用户请求的是一组集群服务器。
集群的关键特性包括:

  1. 可扩展性:集群的性能不限于单一的服务实体,新的服务实体可以动态地加入到集群中,从而增强集群的性能。
  2. 高可用性:集群通过服务实体冗余,使得当一台节点服务器发生故障时,其上运行的应用程序可以在另一节点服务器上被自动接管,从而避免服务中断。
  3. 负载均衡:负载均衡能将任务比较均匀地分布到集群环境下的计算和网络资源,以提高数据吞吐量。
  4. 错误恢复:如果集群中的某一台服务器由于故障或维护需要而无法使用,资源和应用程序将转移到可用的集群节点上,确保服务的连续性。

使用集群的原因主要包括:

  • 高性能:对于计算密集型应用,如天气预报、核试验模拟等,集群可以集中多台计算机进行计算,提高处理能力。
  • 价格有效性:与昂贵的专用超级计算机相比,集群架构通常更经济。
  • 可伸缩性:当服务负载或压力增长时,可以简单地扩展集群系统来满足需求。

简而言之,集群技术允许将多个独立的计算机组合起来,共同工作,以提高整体性能和可靠性。

集群和分布式系统有什么区别?

集群和分布式系统是两种常见的计算架构,它们在概念和实现上有所不同:

集群(Cluster)

  • 集群是指一组相互独立的计算机系统,它们通过高速网络连接,共同对外提供相同的服务。
  • 在集群中,所有的节点(即计算机)通常执行相同的任务,共享相同的数据,目的是通过增加系统资源来提高性能和可靠性。
  • 集群强调的是硬件和资源的集中管理和负载均衡,节点之间通常有紧密的耦合关系。
  • 当一个节点失败时,其任务可以由其他节点接管,从而实现高可用性。

分布式系统(Distributed System)

  • 分布式系统是由多个独立的计算机通过网络连接组成的系统,这些计算机可以分布在不同的地理位置。
  • 在分布式系统中,不同的节点可能执行不同的任务,它们协同工作来完成一个共同的目标,但每个节点可能有自己的数据和本地资源。
  • 分布式系统强调的是任务的分散处理和去中心化,节点之间通常是松耦合的。
  • 分布式系统设计用于处理大量数据或复杂的任务,通过将任务分散到多个节点上,可以提升处理能力和容错性。

主要区别

  1. 目标:集群的主要目标是提高性能和可靠性,而分布式系统的主要目标是处理大量数据或复杂的任务,以及提高系统的容错性和可伸缩性。
  2. 节点角色:在集群中,所有节点通常执行相同的任务,而在分布式系统中,不同节点可能执行不同的任务。
  3. 数据共享:集群中的节点通常共享相同的数据,而分布式系统中的节点可能拥有自己的数据副本。
  4. 耦合度:集群的节点之间耦合度较高,分布式系统的节点之间耦合度较低。

总结来说,集群更侧重于资源的集中管理和负载均衡,而分布式系统更侧重于任务的分散处理和系统的去中心化设计。

铁子小结

  1. 集群就是分布式,分布式就是集群
  2. 只不过在不同的语义下,侧重点不同。
  3. 集群可以分为“拷贝”或者“切片”两种,好的集群当然是既拷贝,又切片。