当前位置: 移动技术网 > IT编程>软件设计>架构 > 分布式与集群的区别

分布式与集群的区别

2018年08月28日  | 移动技术网IT编程  | 我要评论

集群

一组服务实体协同工作,提供比单个服务实体更可伸缩和可用的服务平台。在客户端中,集群就像一个服务实体,但事实上,集群是由一组服务实体组成的。

 

与单个服务实体(服务实体即服务器)相比,集群提供了以下两个关键特性:

可伸缩性(弹性变化):新的服务实体可以动态地添加到集群中,从而提高集群的性能。

高可用性:在集群中,同一服务可以由多个服务实体提供。如果一个服务实体失败,另一个服务实体将接管失败的服务实体。提高了应用程序的可用性,降低客户端遇见错误的机率!

 

为了具备上面两个特性:集群必须具备两种能力。

负载平衡:将客户端任务均匀分配集群中的服务实体(理解:不然增加了新服务实体,哪来提高性能?原来很忙的实体还是这么忙,新增的没活做,增了有何用。)

错误恢复:某服务实体因某些原因执行任务失败,存在另一个服务实体接替它并继续执行任务。从客户端角度看,它的任务始终一台服务器执行,处理的时候发生了什么事,反正拿到结果就好了,这个过程就好像是透明的。

 

为了实现集群服务,需要用到两种技术。

集群地址:客户端通过访问集群地址获取服务(获取服务?就是响应客户端的请求)。负载平衡器会一直维护集群地址,将集群地址转换为内部服务实体的地址(有请求来了才去转换,因为要明确到哪个服务实体获取服务)

内部通信:为了协同工作,实现负载平衡和错误恢复,集群的服务实体必须经常通信。(a服务实体问b服务实体:你挂了?     b服务实体回答:我挂了。你去帮我继续执行这任务吧。    a服务实体说:上下文信息给我,我看看你执行到哪?好接手任务。)

分布式

一个大的应用程序被分成许多任务(每一任务只完成应用程序的一部分功能),每一个任务都由一台或多台服务器互相合作完成。不同任务部署在不同服务器上。

分布式是为了缩短单个任务的执行时间,以提高效率,并且通过增加每个单元时间执行的任务数量来提高效率。例如:如果一个任务由10个子任务组成,每个子任务需要1个小时单独执行,并且在单个服务器上执行任务需要10个小时。使用分布式解决方案,提供了10个服务器,每个服务器只负责处理子任务,而不考虑子任务之间的依赖关系,完成任务只需要一个小时。

区别

分布式:不同服务器,实现不同业务。

集群:多台服务器实现相同业务。

分布式的结构是松散的,大家加起来才是一个完整的组织。如果一个组织挂了,没有其他组织替代它执行任务。

集群中的组织是很多的,某个组织挂了,另一个相同组织可以替代它。

分布式和集群是可以同时存在的。主要看业务需要!都可以在不同方向上提高性能。分布是纵向,集群是横向。至于其他方面对比嘛......

 

 

文章大部分内容译自

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网