加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

浅谈集群、分布式、微服务的异同

发布时间:2019-05-25 16:15:54 所属栏目:Windows 来源:Mike
导读:副标题#e# 什么是集群 集群是指将多台服务器集中在一起,每台服务器都实现相同的业务,做相同的事情。但是每台服务器并不是缺一不可,存在的作用主要是缓解并发压力和单点故障转移问题。我们可以利用一些廉价的符合工业标准的硬件构造高扩展、高性能、低成
副标题[/!--empirenews.page--]

 浅谈集群、分布式、微服务的异同

什么是集群

集群是指将多台服务器集中在一起,每台服务器都实现相同的业务,做相同的事情。但是每台服务器并不是缺一不可,存在的作用主要是缓解并发压力和单点故障转移问题。我们可以利用一些廉价的符合工业标准的硬件构造高扩展、高性能、低成本、高可用的系统。

集群主要具有以下特性:

  • 伸缩性(Scalability)

浅谈集群、分布式、微服务的异同

在一些大的系统中,预测最终用户的数量和行为是非常困难的,伸缩性是指系统适应不断增长的用户数的能力。提高这种并发会话能力的一种最直观的方式就是增加资源(CPU,内存,硬盘等),集群是解决这个问题的另一种方式,它允许一组服务器组在一起,像单个服务器一样分担处理一个繁重的任务,我们只需要将新的服务器加入集群中即可,对于客户来看,服务无论从连续性还是性能上都几乎没有变化,好像系统在不知不觉中完成了升级。

  • 高可用性(High availability)

浅谈集群、分布式、微服务的异同

单一服务器的解决方案并不是一个健壮方式,因为容易出现单点失效。像银行、账单处理这样一些关键的应用程序是不能容忍的,哪怕是几分钟的死机。它们需要这样一些服务在任何时间都可以访问并在可预期的合理时间周期内有响应。高可用性集群的出现就是为了使集群的整体服务尽可能可用,以便考虑计算硬件和软件的易错性。如果高可用性集群中的主节点发生了故障,那么这段时间内将由次节点代替它。次节点通常是主节点的镜像,所以当它代替主节点时,它可以完全接管其身份。因此系统环境对于用户是一致的。

  • 负载均衡(Load balancing)

浅谈集群、分布式、微服务的异同

负载均衡集群为企业需求提供了更实用的系统。如名称所暗示的,该系统使负载可以在计算机集群中尽可能平均地分摊处理。该负载可能是需要均衡的应用程序处理负载或网络流量负载。这样的系统非常适合于运行同一组应用程序的大量用户。每个节点都可以处理一部分负载,并且可以在节点之间动态分配负载,以实现平衡。

  • 高性能 (High Performance)

浅谈集群、分布式、微服务的异同

通常,这种设计的集群是用来开发并行编程应用程序,以解决复杂的科学问题。并行计算(或称平行计算)是相对于串行计算来说的,并行计算能力的目的是用来提高计算速度。它实际是一个计算机集群,其处理能力与真的超级计算机相等。

什么是分布式

分布式服务是指将多台服务器集中在一起,服务是分散部署在不同的机器上的。每台服务器都实现总体中的不同业务,做不同的事情。一个服务可能负责几个功能,是一种面向 SOA 的架构。各分开部署的部分彼此通过各种通讯协议交互信息,并且每台服务器都缺一不可,如果某台服务器故障,则部分功能缺失,或导致整体无法运行。

分布式存在的主要作用是大幅度的提高效率,缓解服务器的访问和存储压力。区别分布式的方式是一个业务分拆多个子业务,部署在不同的服务器上。

例如:将一个大的系统划分为多个业务模块,业务模块分别部署到不同的机器上,各个业务模块之间通过接口进行数据交互。

浅谈集群、分布式、微服务的异同

上图中 Service A、B、C、D 分别是业务组件,通过 API Geteway 进行业务访问。

什么是微服务

浅谈集群、分布式、微服务的异同

微服务的概念和分布式比较相似,微服务是一种架构风格。简单来说微服务就是很小的服务,小到一个服务只对应一个单一的功能。每个微服务仅关注于完成一件任务并很好地完成该任务,这个服务可以单独部署运行。 各个微服务之间是松耦合的,服务之间可以通过 RPC 来相互交互。每个微服务都是由独立的小团队开发、测试、部署,上线,负责它的整个生命周期。

在做架构设计时,当你估算过最大用户量和并发量后,计算出单个应用服务器能否满足需求。如果用户量只有几百人的小应用,单体应用就能搞定,即所有应用部署在一个应用服务器里。如果是很大用户量,且某些功能会被频繁访问,或者某些功能计算量很大,建议将应用拆解为多个子系统,各自负责各自功能,这就是微服务架构。

微服务的设计是为了不因为某个模块的升级和 BUG 影响现有的整个系统业务。微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上,它也可以是同一个服务器。

微服务相比分布式服务来说,它的粒度更小,服务之间耦合度更低。由于每个微服务都由独立的小团队负责,因此它敏捷性更高。分布式服务最后都会向微服务架构演化,这是一种趋势。不过服务微服务化后带来的挑战也是显而易见的,例如服务粒度小,数量大,后期运维难度会增大。

集群、分布式、微服务的异同及联系

1. 分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读