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

发布者:上海IT外包来源:http://www.lanmon.net点击数:1356

什么是集群?
群集是指将多个服务器组合在一起,每个服务器实现相同的业务并执行相同的操作。但是每个服务器都不是必不可少的,它的主要作用是缓解并发压力和单点故障。我们可以使用廉价的行业标准硬件构建高性能,高性能,低成本,高可用性的系统。
群集具有以下主要功能:
可扩展性
在某些大型系统中,很难预测最终用户的数量和行为。可伸缩性是指系统适应不断增长的用户数的能力。提高这种并发通话能力的最直观方法之一是增加资源(CPU,内存,硬盘等)。聚类是解决此问题的另一种方法。它允许将一组服务器组合在一起并像单个服务器一样共享。要处理繁重的任务,我们只需要向集群添加新服务器。对于客户而言,服务的连续性或性能几乎没有变化。似乎系统在不知情的情况下完成了升级。
高可用性
单个服务器解决方案不是一种强大的方法,因为它容易出现单点故障。银行和计费等一些关键应用程序是不能容忍的,即使是几分钟的崩溃也是如此。他们要求始终可以访问此类服务,并在可预期的合理时间段内做出响应。高可用性集群的出现是为了使集群的整体服务尽可能可用,以便考虑计算硬件和软件的容易出错的问题。如果高可用性集群中的主节点发生故障,则在此期间它将被辅助节点替换。辅助节点通常是主节点的镜像,因此当它替换主节点时,它可以完全接管其身份。因此,系统环境对于用户是一致的。负载平衡负载平衡群集为企业需求提供了更实用的系统。顾名思义,系统允许负载尽可能均匀地分布在计算机集群中。此负载可能是需要平衡的应用程序处理负载或网络流量负载。这样的系统对于运行相同应用程序集的大量用户来说是理想的。每个节点都可以处理一部分负载,并且可以动态地在节点之间分配负载以实现平衡。高性能通常,此设计集群用于开发并行编程应用程序以解决复杂的科学问题。并行计算(或并行计算)与串行计算有关,并行计算能力用于提高计算速度。它实际上是一组计算机,具有与真实超级计算机相同的处理能力。
什么是分发?
分布式服务是指多个服务器的聚合,服务分布在不同的机器上。每个服务器在整体上实现不同的服务,并做不同的事情。服务可能负责多个功能,并且是面向SOA的体系结构。每个单独部署的部分通过各种通信协议相互交换信息,并且每个服务器是必不可少的。如果服务器出现故障,则会丢失某些功能,或者整个服务器无法运行。
分布式存在的主要作用是大大提高效率并减轻服务器访问和存储压力。区分分布式的方法是服务拆分多个子服务并将它们部署在不同的服务器上。
例如,大型系统分为多个服务模块,服务模块分别部署在不同的机器上,每个服务模块通过接口进行数据交互。
在上图中,服务A,B,C和D分别是服务组件,并通过API Geteway访问服务。
什么是微服务
微服务的概念类似于分布式,微服务是一种架构风格。简单来说,微服务就是小型服务,而服务就像服务一样对应于单一功能。每个微服务都专注于完成任务并做好,并且可以单独部署服务。每个微服务都是松散耦合的,服务可以通过RPC相互交互。每个微服务都由一个独立的小团队开发,测试,部署和发布,负责整个生命周期。
在进行体系结构设计时,当您估计最大用户量和并发性时,请计算单个应用程序服务器是否可以满足需求。如果用户具有几百人的小应用程序,则可以修复单个应用程序,即,将所有应用程序部署在一个应用程序服务器中。如果它是一个大用户,并且某些功能将被频繁访问,或者某些功能是计算密集型的,则建议将应用程序拆分为多个子系统,每个子系统负责各自的功能。这是微服务架构。微服务的设计使整个系统业务不受模块升级和错误的影响。微服务和分发的细微差别在于微服务的应用不一定分布在多个服务器上,它也可以是同一个服务器。与分布式服务相比,微服务具有更小的粒度和更低的服务耦合。因为每个微服务都由一个小型的独立团队处理,所以它更加灵活。分布式服务最终将演变为微服务架构,这是一种趋势。但是,服务微服务带来的挑战也是显而易见的。例如,服务粒度小,数量大,后期的操作和维护难度增加。集群,分布式和微服务之间的异同
1.分布式是通过缩短单个任务的执行时间来提高效率,而群集通过增加每单位时间执行的任务数来提高效率。
例如,如果任务由10个子任务组成,每个子任务需要1个小时才能单独执行,则在单个服务器上执行任务需要10个小时。
使用分布式解决方案,可提供10台服务器。每个服务器仅负责处理一个子任务。无论子任务之间的依赖关系如何,执行此任务只需一个小时。 (这种操作模式的典型表示是Hadoop的Map/Reduce分布式计算模型)
使用群集解决方案,还有10个服务器,每个服务器可以独立处理此任务。假设有10个任务同时到达,10个服务器将同时工作,1个小时后,10个任务将同时完成。这样,它仍然是一小时内的任务。
注意:需要分布式管理。
2.集群模式是不同的服务器为外部访问部署同一组服务,实现服务的负载均衡。区分群集的方法取决于多个服务器的部署是否相同。可以对分布式网络中的每个节点进行群集。集群不一定是分布式的。
例如:就像新浪网有更多人访问,他可以做一个集群。将响应服务器放在前面,接下来的几台服务器完成相同的服务。如果存在服务访问权限,则响应服务器将查看哪个服务器不是很重,并将任务分派给哪个服务器完成。
而分布式,从狭义的理解也类似于集群。但它的组织是松散的,不同于具有组织性质的集群,一个服务器瘫痪,其他服务器可以出现。分布式网络中的每个节点都完成不同的服务,并且节点无法访问业务。
注意:会话需要共享群集模式,以确保在不同服务器之间切换过程中无法获取会话,从而无法终止服务。 3.分布式和微服务之间的关系分布式和微服务的体系结构非常相似,但它们的部署方式不同。生产环境中的微服务必须是分布式部署。分布式部署的应用不一定是微服务架构。例如,集群部署,将相同的应用程序复制到不同的服务器,但逻辑功能仍然是单个应用程序。 4.我们可以在开发中分离分布式和集群吗?对于这个问题,我们可以从分布式介绍中看到它的主要功能是模块化我们的系统并解耦系统。方便我们将来的维护和开发。但是,它不能解决我们的并发问题,也不能保证服务器关闭后系统的正常运行。集群只是弥补了分销的弊端。集群是处理相同业务的多个服务器。一方面,这可以解决或改善我们系统的并发问题。一方面,如果出现一定数量的停机时间,它可以解决我们的服务器仍能正常运行的问题。一个好的设计应该是分布式和集群式的组合,首先是分布式的,然后是集群式的。具体实现是将业务拆分为多个子服务,然后为每个子服务执行集群部署。这样,如果每个子服务出现问题,整个系统根本不会受到影响。因此,分布式和集群是一个很好的基础朋友,谁也离不开它。
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部