zoukankan      html  css  js  c++  java
  • 分布式与集群的区别

    集群

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

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

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

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

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

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

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

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

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

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

    分布式

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

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

    区别

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

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

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

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

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

     

    文章大部分内容译自 https://www.supinfo.com/articles/single/6495-the-difference-between-cluster-and-distributed 

  • 相关阅读:
    have you declared this activity in your AndroidManifest.xml?
    Android收回输入法的实现
    Android手机Home键重写
    Android屏幕点击事件重写
    拖动ListView列表时背景变黑
    AFNetworking vs ASIHTTPRequest vs MKNetworkKit
    libgif.so
    android.support.v4.widget.DrawerLayout
    Titanium vs PhoneGap
    Non-constant Fields in Case Labels
  • 原文地址:https://www.cnblogs.com/bibi-feiniaoyuan/p/9543481.html
Copyright © 2011-2022 走看看