从Paxos到Zookeeper分布式一致性原理与实践 - (EPUB全文下载)
文件大小:2.19 mb。
文件格式:epub 格式。
书籍内容:
从Paxos到Zookeeper分布式一致性原理与实践
第1章 分布式架构
第2章 一致性协议
第3章 Paxos的工程实践
第4章 ZooKeeper与Paxos
第5章 使用ZooKeeper
第6章 ZooKeeper的典型应用场景
第7章 ZooKeeper技术内幕
第8章 ZooKeeper运维
附录A Windows平台上部署ZooKeeper
附录B 从源代码开始构建
附录C 各发行版本重大更新记录
附录D ZooKeeper源代码阅读指引
第1章 分布式架构
随着计算机系统规模变得越来越大,将所有的业务单元集中部署在一个或若干个大型机上的体系结构,已经越来越不能满足当今计算机系统,尤其是大型互联网系统的快速发展,各种灵活多变的系统架构模型层出不穷。同时,随着微型计算机的出现,越来越多廉价的PC机成为了各大企业IT架构的首选,分布式的处理方式越来越受到业界的青睐——计算机系统正在经历一场前所未有的从集中式向分布式架构的变革。
1.1 从集中式到分布式
自20世纪60年代大型主机被发明出来以后,凭借其超强的计算和I/O处理能力以及在稳定性和安全性方面的卓越表现,在很长一段时间内,大型主机引领了计算机行业以及商业计算领域的发展。在大型主机的研发上最知名的当属IBM,其主导研发的革命性产品 System/360 系列大型主机,是计算机发展史上的一个里程碑,与波音 707 和福特 T型车齐名,被誉为 20 世纪最重要的三大商业成就,并一度成为了大型主机的代名词。从那时起,IT界进入了大型主机时代。
伴随着大型主机时代的到来,集中式的计算机系统架构也成为了主流。在那个时候,由于大型主机卓越的性能和良好的稳定性,其在单机处理能力方面的优势非常明显,使得IT系统快速进入了集中式处理阶段,其对应的计算机系统称为集中式系统。但从20世纪 80 年代以来,计算机系统向网络化和微型化的发展日趋明显,传统的集中式处理模式越来越不能适应人们的需求。
首先,大型主机的人才培养成本非常之高。通常一台大型主机汇集了大量精密的计算机组件,操作非常复杂,这对一个运维人员掌握其技术细节提出了非常高的要求。
其次,大型主机也是非常昂贵的。通常一台配置较好的 IBM 大型主机,其售价可能在上百万美元甚至更高,因此也只有像政府、金融和电信等企业才有能力采购大型主机。
另外,集中式系统具有明显的单点问题。大型主机虽然在性能和稳定性方面表现卓越,但这并不代表其永远不会出现故障。一旦一台大型主机出现了故障,那么整个系统将处于不可用状态,其后果相当严重。最后,随着业务的不断发展,用户访问量迅速提高,计算机系统的规模也在不断扩大,在单一大型主机上进行系统的扩容往往比较困难。
而另一方面,随着 PC机性能的不断提升和网络技术的快速普及,大型主机的市场份额变得越来越小,很多企业开始放弃原来的大型主机,而改用小型机和普通PC服务器来搭建分布式的计算机系统。
其中最为典型的就是阿里巴巴集团的“去 IOE”运动。从 2008 年开始,阿里巴巴的各项业务都进入了井喷式的发展阶段,这对于后台 IT 系统的计算与存储能力提出了非常高的要求,一味地针对小型机和高端存储进行不断扩容,无疑会产生巨大的成本。同时,集中式的系统架构体系也存在诸多单点问题,完全无法满足互联网应用爆炸式的发展需求。因此,为了解决业务快速发展给IT系统带来的巨大挑战,从2009年开始,阿里集团启动了“去IOE”计划,其电商系统开始正式迈入分布式系统时代。
1.1.1 集中式的特点
所谓的集中式系统就是指由一台或多台主计算机组成中心节点,数据集中存储于这个中心节点中,并且整个系统的所有业务单元都集中部署在这个中心节点上,系统的所有功能均由其集中处理。也就是说,在集中式系统中,每个终端或客户端机器仅仅负责数据的录入和输出,而数据的存储与控制处理完全交由主机来完成。
集中式系统最大的特点就是部署结构简单。由于集中式系统往往基于底层性能卓越的大型主机,因此无须考虑如何对服务进行多个节点的部署,也就不用考虑多个节点之间的分布式协作问题。
1.1.2 分布式的特点
在《分布式系统概念与设计》[1]一书中,对分布式系统做了如下定义:
分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。
上面这个简单的定义涵盖了几乎所有有效地部署了网络化计算机的系统。严格地讲,同一个分布式系统中的计算机在空间部署上是可以随意分布的,这些计算机可能被放在不同的机柜上,也可能在不同的机房中,甚至分布在不同的城市。无论如何,一个标准的分布式系统在没有任何特定业务逻辑约束的情况下,都会有如下几个特征。
分布性
分布式系统中的多台计算机都会在空间上随意分布,同时,机器的分布情况也会随时变动。
对等性
分布式系统中的计算机没有主/从之分,既没有控制整个系统的主机,也没有被控制的从机,组成分布式系统的所有计算机节点都是对等的。副本(Replica)是分布式系统最常见的概念之一,指的是分布式系统对数据和服务提供的一种冗余方式。在常见的分布式系统中,为了对外提供高可用的服务,我们往往会对数据和服务进行副本处理。数据副本是指在不同的节点上持久化同一份数据,当某一个节点上存储的数据丢失时,可以从副本上读取到该数据,这是解决分布式系统数据丢失问题最为有效的手段。另一类副本是服务副本,指多个节点提供同样的服务,每个节点都有能力接收来自外部的请求并进行相应的处理。
并发性
在“问题的提出”部分,我们已经提到过与“更新的并发性”相关的内容。在一个计算机网络中,程序运行过程中的并发性操作是非常常见的行为,例如同一个分布式系统中的多个节点,可能会并发地操作一些共享的资源,诸如数据库或分布式存储等,如何准确并高效地协调分布式并发操作也成为了分布式系统架构与设计中最大的挑战之一。
缺乏全局时钟
在上面的讲解中,我们已经了解到,一个典型的分布式系统是由一系列在空间上随意分布的多个进程组成的,具有明显的分布性,这些进 ............
以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。
书云 Open E-Library » 从Paxos到Zookeeper分布式一致性原理与实践 - (EPUB全文下载)