集群与分布式

概念

要说两者的区别首先要搞清楚它们的概念。概念清楚了,它们的区别也就很清楚了。

集群

集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。

关键特性

在客户端看来,一个集群就像是一个服务实体,但事实上集群由一组服务实体组成。与单一服务实体相比较,集群提供了以下两个关键特性:

  • 可扩展性

    集群的性能不限于单一的服务实体,新的服务实体可以动态地加入到集群,从而增强集群的性能。

  • 高可用性

    集群通过服务实体冗余使客户端免于轻易遇到out of service的警告。在集群中,同样的服务可以由多个服务实体提供,如果一个服务实体失败了,另一个服务实体会接管失败的服务实体。集群提供的从一个出错的服务实体恢复到另一个服务实体的功能增强了应用的可用性。

能力支持

为了具有可扩展性和高可用性的特点,集群必须具备以下两个能力:

  • 负载均衡

    负载均衡能把任务比较均衡地分配到集群环境下的计算和网络资源。

  • 错误恢复

    由于某种原因,执行某个任务的资源出现故障,另一个服务实体中执行同一任务的资源接着完成任务。这种由于一个实体中的资源不能工作,另一个实体中的资源透明的继续完成任务的过程叫做错误恢复。

负载均衡和错误恢复都要求各服务实体中有执行同一任务的资源存在,而且对于同一任务的各个资源来说,执行任务所需的信息视图(信息上下文)必须是一样的。

必要技术

同样为了保证集群能提供上述的两种能力,下面两种技术是必要的:

  • 集群地址

    集群由多个服务实体组成,集群客户端通过访问集群的集群地址获取集群内部各服务实体的功能。具有单一集群地址(也叫单一影像)是集群的一个基本特征。维护集群地址的设置被称为负载均衡器。负载均衡器内部负责管理各个服务实体的加入和退出,外部负责集群地址向内部服务实体地址的转换。有的负载均衡器实现真正的负载均衡算法,有的只支持任务的转换。只实现任务转换的负载均衡器适用于支持ACTIVE-STANDBY的集群环境,在那里,集群中只有一个服务实体工作,当正在工作的服务实体发生故障时,负载均衡器把后来的任务转向另外一个服务实体。

  • 内部通信

    为了能协同工作、实现负载均衡和错误恢复,集群各实体间必须时常通信,比如负载均衡器对服务实体心跳测试信息、服务实体间任务执行上下文信息的通信。

具有同一个集群地址使得客户端能访问集群提供的计算服务,一个集群地址下隐藏了各个服务实体的内部地址,使得客户要求的计算服务能在各个服务实体之间分布。内部通信是集群能正常运转的基础,它使得集群具有均衡负载和错误恢复的能力。

集群分类

主要分为三类高可用集群、负载均衡集群、科学计算集群。

  • 高可用集群主要是应对故障的场景。
  • 负载均衡集群是为了提高性能,比如网络请求和数据查询。
  • 科学技术集群是为了提高单体所不能提供的高性能。

分布式

分布式是指将不同的业务分布在不同的地方。

区别

集群指的是将几台服务器集中在一起,实现同一业务。

分布式是指将不同的业务分布在不同的地方。

分布式中的每一个节点,都可以做集群。 而集群并不一定就是分布式的。

参考文档

  • 分布式与集群的区别

你可能感兴趣的:(集群与分布式)