集中式 vs. 分布式系统架构

 

一、前言

       随着计算机系统规模变得越来越大,将所有业务单元集中部署在一个或者若干个大型机 上的体系结构物,已经越来越不能满足当今计算机系统,尤其是大型互联网系统的快速发展,各种灵活多变的系统架构模型层出不穷。同时,随着微型计算机的出 现,越来越多廉价的PC机成为了各大IT企业架构的首选,分布式的处理方式越来越受到业界的青睐----计算机系统正在经历一场前所未有的从集中式到分布 式架构的变革。

从集中式到分布式

       自从20世纪60年代大型主机被发明出来以后,凭借其超强的计算和I/O处理能力 以及在稳定性和安全性方面的卓越表现,在很长一段时间内,大型主机引领了计算机行业以及商业计算领域的发展。在大型主机的研发上最知名的当属IBM,其主 导研发的革命性产品System/360系列大型主机,是计算机发展史上的一个里程碑,与波音707和福特T型车齐名,被誉为20世纪最重要的三大商业成 就,IT界进入了大型主机时代。

       伴随着大型主机时代的到来,集中式的计算机系统架构也成为了主流。在那个时候,由 于大型主机卓越的性能和良好的稳定性,其在单机处理能力方面的优势非常明显,使得IT系统快速进入了集中式处理阶段,其对应的计算机系统称为集中式系统。 但从20世纪80年代以来,计算机系统向网络化和微型化的发展日趋明显,传统的集中式处理模型越来越不能适应人们的需求,具体表现在:

       1、大型主机的人才培养成本非常高,通常一台大型主机汇集了大量精密的计算机组件,操作非常复杂,这对一个运维人员掌握其技术细节提出了非常高的要求

       2、大型主机也是非常昂贵的,通常一台配置较好的IBM大型主机,其售价达到上百万美元甚至更高,因此也只有像政府、金融和电信等企业才有能力采购大型主机

       3、集中式有非常明显的单点问题,大型主机虽然在性能和稳定性方面表现卓越,但并 不代表其永远不会出故障。一旦一台大型主机出现了故障,那么整个系统将处于不可用的状态,后果相当严重。最后,随着业务的不断发展,用户访问量迅速提高, 计算机系统的规模也在不断扩大,在单一大型主机上进行扩容往往比较困难

       4、随着PC机性能的不断提升和网络技术的快速普及,大型主机的市场份额变得越来越小,很多企业开始放弃原来的大型主机,而改用小型机和普通PC服务器来搭建分布式计算机

       对业内新闻比较关注的,一定知道阿里巴巴在2009年发起了一项"去IOE"运动。 因为阿里巴巴从2008年开始各项业务都进入了井喷式的发展阶段,这对于后台IT系统的计算与存储能力提出了非常高的要求,一味地针对小型机和高端存储进 行不断扩容,无疑会产生巨大的成本。同时,集中式的系统架构体系也存在着诸多单点问题,完全无法满足互联网应用爆炸式的发展需求。因此,为了解决业务快速 发展给IT系统带来的巨大挑战,从2009年开始,阿里集团启动了"去IOE"计划,其电商系统开始正式迈入了分布式系统时代。

二、集中式系统架构

       所谓集中式系统就是指由一台或多台主计算机组成中心节点,数据集中存储于这个中心 节点中,并且整个系统的所有业务单元都集中部署在这个中心节点上,系统所有的功能均由其集中处理。也就是说,集中式系统中,每个终端或客户端及其仅仅负责 数据的录入和输出,而数据的存储与控制处理完全交由主机来完成。

       集中式系统最大的特点就是部署结构简单,由于集中式系统往往基于底层性能卓越的大型主机,因此无需考虑如何对服务进行多个节点的部署,也就不用考虑多个节点之间的分布式协作问题。

三、分布式系统架构

 

       在《分布式系统概念与设计》注 一书中,对分布式系统做了如下定义:

       分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。

       严格地讲,同一个分布式系统中的计算机在空间部署上是可以随意分布的,这些计算机可能被放在不同的机柜上,也可能在不同的机房中,甚至分布在不同的城市。无论如何,一个标准的分布式系统在没有任何特定业务逻辑约束的情况下,都会有以下几个特征:

1、分布性

       分布式系统中的多台计算机都会在空间上随意分布,同时,及其的分布情况也会随时变动

2、对等性

       分布式系统中的计算机没有主/从之分,既没有控制整个系统的主机,也没有被控制的 从机,组成分布式系统的所有节点都是对等的。副本(Replica)是分布式系统最常见的概念之一,指的是分布式系统对数据和服务提供的一种冗余方式。在 常见的分布式系统中,为了对外提高可用的服务,我们往往会对数据和服务进行副本处理。数据副本是指在不同的节点上持久化同一份数据,当某一个节点上存储的 数据丢失时,可以从副本上读取到该数据,这是解决分布式系统数据丢失问题最为有效的手段。另一类副本是服务副本,指多个节点提供同样的服务,每个节点都有 能力接收来自外部的请求并进行相应的处理

3、并发性

       在一个计算机网络中,程序运行过程中的并发性操作是非常常见的行为,例如同一个分布式系统的多个节点,可能会并发地操作一些共享的资源,诸如数据库或分布式存储等,如何准确并高效地协调分布式并发操作也成为了分布式系统架构与设计中最大的挑战之一

4、缺乏全局时钟 

       一个典型的分布式系统是由一系列空间上随意分布的多个进程组成的,具有明显的分布性,这些进程之间通过交换消息来进行相互通信。因此,在分布式系统中,很难定义两个事件究竟谁先谁后,原因就是因为分布式系统缺乏一个全局的始终控制序列

5、故障总是会发生

       组成分布式系统的所有计算机,都有可能发生任何形式的故障。一个被大量工程实践过 的黄金定理是:任何在设计阶段考虑到的异常情况,一定会在系统实际运行中发生,并且,在系统实际运行中还会遇到很多在设计时未考虑到的异常故障。所以,除 非需求指标允许,在系统设计时不能放过任何异常情况

6、处理单点故障

       在整个分布式系统中,如果某个角色或者功能只有某台单机在支撑,那么这个节点称为单点,其发生的故障称为单点故障,也就是通常说的SPoF(Single Point of Failure),避免单点而对关键就是把这个功能从单机实现变为集群实现,当然,这种变化一般会比较困难,否则就不会有单点问题了。如果不能把单点变为集群实现,那么一般还有两种选择:

(1)给这个单点做好备份,能够在出现问题时进行恢复,并且尽量做到自动恢复

(2)降低单点故障的影响范围

参考文献:https://wenku.baidu.com/view/7c9081e2524de518964b7d4e.html

参考博客:http://www.cnblogs.com/szlbm/p/5588541.html

何谓IOE?
IOE 这个说法来自阿里技术团队内部的称谓,然后才在整个业界流传开来。IOE是传统IT三大件,指以 IBM 、Oracle、EMC 为代表的小型机、集中式数据库和高端存储的技术架构。
I 指 IBM p 系列小型机,操作系统是 AIX(IBM 专有的 Unix 系统);
O 指 Oracle 数据库(RDBMS);

E 指 EMC 中高端 SAN 存储。

为什么要去IOE?
阿里巴巴过去一直采用的是Oracle数据库,并利用小型机和高端存储设备提供高性能的数据处理和存储服务。随着业务的不断发展,数据量和业务量呈爆发性增长,传统的集中式Oracle数据库架构在扩展性方面遭遇瓶颈。
传统的商业数据库软件(Oracle,DB2),多以集中式架构为主,这些传统数据库软件的最大特点就是将所有的数据都集中在一个数据库中,依靠大型高端设备来提供高处理能力和扩展性。集中式数据库的扩展性主要采用向上扩展(Scale up)的方式,通过增加CPU,内存,磁盘等方式提高处理能力。这种集中式数据库的架构,使得数据库成为了整个系统的瓶颈,已经越来越不适应海量数据对计算能力的巨大需求。


传统架构在主机端大多通过两台主机共享存储设备,平时其中一台主机使用存储通过数据库软件来管理。这样的架构只能有一台主机(RAC除外)上的数据库能够提供服务,另一台主机只能是作为热备冗余,不能启动数据库实例提供服务。所以,其处理能力就完全取决于这台主机的最大扩展能力,很难通过增加主机数量来增加处理能力。而单台主机的扩展能力毕竟是有限的,即使是某些厂商的大型机,同样也有其扩展限制。此外,传统架构对高端设备的依赖,无疑将直接导致系统成本的大幅度增加,甚至可能会导致系统被主机和硬件厂商所“绑架”,不得不持续增加投入成本。


在阿里看来,“IOE”实际上代表了一种高成本、高维护费、很不互联网(不擅长处理大规模高并发的互联网行为)的商用数据库系统,特别是阿里盘子越来越大,所需要付出的升级硬件和维护的代价也会越来越惊人,阿里巴巴采用数据切分(sharding)的策略,将部分海量数据应用从集中式Oracle切换到分布式MySQL集群,从纵向扩展到水平扩展,解决了数据库扩展性的问题,并用PC服务器替换了小型机。事实上,这里可以做一个不那么技术但比较简单的理解:传统的IOE代表的是集中式架构,而去IOE化其实就是推动分布式架构代替集中式架构,也就是更好的拥抱云计算—当然对阿里本身来说,用通俗的语言解读出阿里云甚至阿里的IT计算(甚至商业模式)发展路径:
1、鉴于类似双11这种超大规模并发行为的产生,背后需要的计算资源非常庞大,所以整个阿里对IT资源的投入都是非常大的。
2、当投入大量的资源应对高峰期高并发时,低峰低并发时就造成了计算资源的冗余,这个时候就可以以云计算的方式出租给中小企业。而当然企业就可能有更高的野心,比如把云计算作为主要的商业模式。但是对于那些对计算要求很高的公司,还不够。
软件决定整体架构,如果要动O,那么I和E就必须要动 – 相信不会有人在小型机上跑 MySQL 的。

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值