分布式 与 集群

上一篇文章写到了架构的演变过程,其中出现了 分布式集群 两个名词,有些人可能会对这两个词造成误解,那么我们这里就对这两个名词做一些解释

首先, 分布式集群 都是使用多台服务器来进行工作的,都可以提高系统的高并发



简单一点来说,可以这样理解:

分布式

  • 一个业务分拆多个子业务,分别部署在不同的服务器上(可以是在不同的物理位置)
  • 使每个服务器的职责更加专一,缩短单个任务的执行时间来提升效率
  • 可以用来解决系统的高性能
  • 分布式的每一个节点,都可以做集群

集群

  • 同一个业务,部署在多个服务器上(集中统一管理)
  • 主要是通过提高单位时间内处理的任务数来提高效率
  • 用来解决系统的高可用性

分布式 用来业务拆分,不同的业务部署在不同地方(几个人分工合作)

集群 将几台服务器部署在一起,实现同一个业务(一群人做一件事)



接下来,我们在来分别详细的说一下


集群

集群 是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。在客户端看来,一个集群就象是一个服务实体,但事实上集群由一组服务实体组成

与单一服务实体相比较,集群提供了以下特性:

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


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

  • 负载均衡——负载均衡能把任务比较均衡地分布到集群环境下的计算和网络资源
  • 错误恢复——由于某种原因,执行某个任务的资源出现故障,另一服务实体中执行同一任务的资源接着完成任务。这种由于一个实体中的资源不能工作,另一个实体中的资源透明的继续完成任务的过程叫错误恢复

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



实现集群还要有以下技术:

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

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


集群类型

最常见的三种集群类型包括 高性能集群负载均衡集群高可用性集群

  • 高性能集群:

    通常,高性能集群涉及为集群开发并性编程应用程序,以解决复杂的科学问题。这是并行计算的基础,尽管它不使用专门的并行超级计算机,这种超级计算机内部由十至上万个独立处理器组成。但它却使用商业系统,如通过高速连接来链接的一组单处理器或双处理器 PC,并且在公共消息传递层上进行通信以运行并行应用程序。因此,会常常听说又有一种便宜的 Linux 超级计算机问世了。但它实际是一个计算机集群,其处理能力与真的超级计算机相等

  • 负载均衡集群:

    负载均衡集群为企业需求提供了更实用的系统。如名称所暗示的,该系统使负载可以在计算机集群中尽可能平均地分摊处理。该负载可能是需要均衡的应用程序处理负载或网络流量负载。这样的系统非常适合于运行同一组应用程序的大量用户。每个节点都可以处理一部分负载,并且可以在节点之间动态分配负载,以实现平衡。对于网络流量也是如此。通常,网络服务器应用程序接受了太多入网流量,以致无法迅速处理,这就需要将流量发送给在其它节点上运行的网络服务器应用。还可以根据每个节点上不同的可用资源或网络的特殊环境来进行优化

  • 高可用性集群:

    高可用性集群的出现是为了使集群的整体服务尽可能可用,以便考虑计算硬件和软件的易错性。如果高可用性集群中的主节点发生了故障,那么这段时间内将由次节点代替它。次节点通常是主节点的镜像,所以当它代替主节点时,它可以完全接管其身份,并且因此使系统环境对于用户是一致的

在集群的这三种基本类型之间,经常会发生混合与交杂。于是,可以发现高可用性集群也可以在其节点之间均衡用户负载,同时仍试图维持高可用性程度。同样,可以从要编入应用程序的集群中找到一个并行集群,它可以在节点之间执行负载均衡


分布式

分布式就没有集群那么难理解了,就是把一个任务划分为多个任务,分别交给多个计算机来解决,然后共同完成这项工作

因为我是做web开发的,所以我们以网站为例

比如说我们现在有一个大型的网站,根据业务我们可以把整个网站划分为多个业务模块,每个业务模块交给一个单独的团队来完成,然后每个团队分别把他们负责的业务模块部署在单独的服务器(物理位置没有限制)上面,这就可以理解为分布式部署。如果某个业务模块的用户访问量很大,这时候我们可以把这个节点做成集群,保证该模块的高并发性、架构的可伸缩性

如下图所示:

这个里面,我们对不同的业务进行了分布式的架构,然后对于相同的业务模块,我们将其配置为集群,以此来保证架构的可用性、伸缩性和可扩展性

时间: 2024-10-10 06:09:44

分布式 与 集群的相关文章

分布式与集群的区别

转自:http://sctrack.360doc1.net/track/click/eyJ1c2VyX2lkIjogMzkwMjIsICJ0YXNrX2lkIjogIiIsICJlbWFpbF9pZCI6ICIxNDUyNzgzODgwNDI4XzM5MDIyXzI5NTM3XzE0OTkuc2MtMTBfMTBfMTI3XzUxLWluYm91bmQwJGN4emR5QHZpcC5xcS5jb20iLCAic2lnbiI6ICI2NjgyOTU1Zjg1YTZiZWNkZTNjMWNjYjlh

分布式数据库集群中间件

我是一个分布式数据库集群中间件的开发人员,已经一年多一点的开发时间了,今天总结点我所知道的一些事情,给有新近来到这个领域的研发人员一点借鉴. 生活不易,赚钱不易,离开仅仅是为多赚点钱. ----学渣 我仅仅是说我所开发过的系统: 后面文章会有具体的分析.这里仅仅做简单的梳理.也就是你要研发分布式数据库集群中间件.须要向着哪些方面去思考. 首先我们从名字去分析我们正在从事的工作内容: 1. 分布式 须要考虑它的方向(后面具体说明) a)  分布式中的概念 b)  分布式的模型 c)  分布式系统特

legend分布式服务器集群逻辑计算处理压力测试

(如果图小,可以Ctrl+鼠标滚轮给缩放) 基于上次<legend分布式服务器集群并发登陆上线游戏压测结果>之后做了逻辑处理压力测试,仍然只配置了单个网关与单个逻辑服在集群中,结果如下: 测试用例: 第一步:上线一万个玩家,然后每10秒钟让每个玩家都往网关服务器发送一个逻辑计算请求,网关服务器转发请求给逻辑服务器处理,逻辑服务器进行一百万次浮点运算,然后将结果再返回给网关服务器,最后由网关服务器转发计算结果给玩家客户端,如图: 先分10个机器人,每个上线1000个,如图: 可以看出,从最先上线

大型分布式数据库集群的研究

1.为什么要设计成分布式数据库,数据为什么要分区? 当数据量很大的时候,即使服务器在没有任何压力的情况下,某些复杂的查询操作都会非常缓慢,影响了最终用户的体验. 在大数据量下对数据库的装载与导出,备份与恢复,结构的调整,索引的调整等都会让数据库停止服务或者高负荷运转很长时间,影响了数据库的可用性和可管理性. 这个时候靠提升服务器的硬件配置是起不到作用的,只有靠分区把数据分成更小的部分才能提高数据库的可用性和可管理性. 通过分区把各部分数据放到不同的机器中,每次查询可以由多个机器上的CPU,I/O

分布式与集群的区别通俗解释

(1)回答1: 集群是个物理形态,分布式是个工作方式.只要是一堆机器,就可以叫集群,他们是不是一起协作着干活,这个谁也不知道:一个程序或系统,只要运行在不同的机器上,就可以叫分布式,嗯,C/S架构也可以叫分布式.集群一般是物理集中.统一管理的,而分布式系统则不强调这一点.所以,集群可能运行着一个或多个分布式系统,也可能根本没有运行分布式系统:分布式系统可能运行在一个集群上,也可能运行在不属于一个集群的多台(2台也算多台)机器上. (2)回答2: 分布式是相对中心化而来,强调的是任务在多个物理隔离

分享在Linux下使用OSGi.NET插件框架快速实现一个分布式服务集群的方法

在这篇文章我分享了如何使用分层与模块化的方法来设计一个分布式服务集群.这个分布式服务集群是基于DynamicProxy.WCF和OSGi.NET插件框架实现的.我将从设计思路.目标和实现三方面来描述. 1 设计思路 首先,我来说明一下设计思路.我们先来看看目前OSGi.NET插件框架的服务.在这里,服务不是远程服务,它是轻量级的服务,由接口和实现类组成,如下图所示.服务契约插件定义了服务接口,服务实现插件向服务总线注册服务,服务调用插件利用服务契约(接口)从服务总线获取实现的服务并调用,服务实现

分布式和集群的区别

在IDF05(Intel Developer Forum 2005)上,Intel首席执行官Craig Barrett就取消4GHz芯片计划一事,半开玩笑当众单膝下跪致歉,给广大软件开发者一个明显的信号,单纯依靠垂直提升硬件性能来提高系统性能的时代已结束,分布式开发的时代实际上早已悄悄地成为了时代的主流,吵得很热的云计算实际上只是包装在分布式之外的商业概念,很多开发者(包括我)都想加入研究云计算这个潮流,在google上通过"云计算"这个关键词来查询资料,查到的都是些概念性或商业性的宣

分布式ActiveMQ集群

分布式ActiveMQ集群的部署配置细节: 官方资料:http://activemq.apache.org/clustering.html 基本上看这个就足够了,本文就不具体分析配置文件了. 1.Queue consumer clusters: 同一个queue,如果一个consumer失效,那么未被确认的消息都会被发送到这个queue的其它consumer上.如果某个consumer处理消息比较快,那么它将处理更多的消息. Queue consumer clusters 不需要特殊的配置. 2

分布式数据库集群节点数据一致性校验

某500强客户要上线一个功能,其后台所有数据库是我司设计开发的NoSQL数据库. 为了避免数据库集群中,数据节点不一致而导致问题,需要对数据库节点间的数据进行校验. 理论上说,数据库节点之间的数据,应当保持最终一致性.而我司的数据库,是在对主节点对数据进行操作时,coord节点会(立即)通知备节点拉取数据,从而保持数据的一致性.所以,对于正常运行的数据库来说,一个集群内每个节点上的数据,是完全一致的. 客户是上帝,我们所作的就是要让客户放心.虽然我们强调我们的数据库集群内的节点中数据是一致的,让

分布式与集群

一直听说过分布式由于找工作需要所以学习,都知道有分布式集群(Hdoop).分布式存储(GFS,NFS).分布式数据库(Hbase,redis,memcaced).分布式系统.分布式软件等,今天开始后续的学习. 分布式就是分开了.分散了.比如数据处理(北京搞北京.天津搞天津),比如集群(一个人干一件事.发现不如一个人生十个八个然后每俩去干一件事情). 并行处理是利用多个功能部件或多个处理机同时工作来提高系统性能或可靠性的计算机系统,这种系统至少包含指令级或指令级以上的并行. 分布式处理则是将不同地