大规模分布式系统架构与设计实战[Architecture and Design of Large Scale Distributed System] pdf
内容简介
《大规模分布式系统架构与设计实战》从作者的实战经验出发,深入浅出地讲解了如何建立一个Hadoop那样的分布式系统,实现对多台计算机CPU、内存、硬盘的统一利用,从而获取强大计算能力去解决复杂问题。一般互联网企业的分布式存储计算系统都是个大平台,系统复杂、代码庞大,而且只适合公司的业务,工程师很难下载安装到自己的电脑里学习和吃透。本书对分布式核心技术进行了大量归纳和总结,并从中抽取出一套简化的框架和编程API进行讲解,方便工程师了解分布式系统的主要技术实现。这不是一本空谈概念、四处摘抄的书,这本书包含了大量精炼示例,手把手教你掌握分布式核心技术。
作者简介
彭渊,资深架构师,现任华为企业中间件首席架构师,主要负责中间件和大数据。前淘宝高级专家(花名:千峰),先后在淘宝交易、淘宝中间件、集团核心系统、阿里金融等部门工作。曾任金蝶总体架构部SOA架构师,负责设计ESB。曾艰苦创业,编写和销售财务软件。在Java技术领域从业十多年,撰写过多款开源软件,其中,淘宝分布式技术框架Fourinone为其代表作。他拥有软件著作权的代表作有:BS系列软件(包括财务进销存、OA产品、CRM等)、FMS视频会议、Flash网站生成软件(华军可下载),所有软件作品均贡献99%代码。
目录
前言
第1章 概述
1.1 分布式计算、并行计算、云计算概述
1.2 分布式产品Hadoop、ZooKeeper、HBase概述
1.3 Fourinone的产生背景
第2章 分布式并行计算的原理与实践
2.1 分布式并行计算模式
2.2 跟Hadoop的区别
2.3 关于分布式的一些概念与产品
2.4 配置文件和核心API介绍
2.5 实践与应用
2.6 实时流计算
第3章 分布式协调的实现
3.1 协调架构原理简介
3.2 核心API
3.3 权限机制
3.4 相对于ZooKeeper的区别
3.5 与Paxos算法的区别
3.6 实践与应用
第4章 分布式缓存的实现
4.1 小型网站或企业应用的缓存实现架构
4.2 大型分布式缓存系统实现过程
4.3 一致性哈希算法的原理、改进和实现
4.4 解决任意扩容的问题
4.5 解决扩容后数据均匀的问题
4.6 分布式Session的架构设计和实现
4.7 缓存容量的相关属性设置
4.8 缓存清空的相关属性设置
第5章 消息队列的实现
5.1 闲话中间件与MQ
5.2 JMS的两种经典模式
5.3 如何实现发送接收的队列模式
5.4 如何实现主题订阅模式
第6章 分布式文件系统的实现
6.1 FTTP架构原理解析
6.2 搭建配置FttpAdapter环境
6.3 访问集群文件根目录
6.4 访问和操作远程文件
6.5 集群内文件复制和并行复制
6.6 读写远程文件
6.7 解析远程文件
6.8 并行读写远程文件
6.9 批量并行读写远程文件和事务补偿处理
6.10 如何进行整型读写
6.11 基于整型读写的上亿排序
第7章 分布式作业调度平台的实现
7.1 调度平台的设计与实现
7.2 资源隔离的实现
7.3 资源调度算法
7.4 其他作业调度平台简介
感悟与笔记
在概述分布式核心技术之前,我们有必要先概括阐述一下分布式计算、并行计算、云计算等相关概念,以及市场上流行的相关技术产品,如Hadoop生态体系,然后再结合背景引出我们为什么要归纳出一个轻量级的分布式框架。本章为后续章节的背景。本章意在使读者对分布式技术话题的前因后果先有所了解。
由于只是概述,我们对涉及的分布式计算概念和Hadoop生态体系只是蜻蜓点水地带过,目的仅是让读者了解到这些内容大致是什么,详细的使用方法和开发方法可以参考其他书籍。
经科学研究发现:目前存在很多万亿次计算实例,其中涉及的问题都需要非常巨大的计算能力才能解决。这类问题很多还是跨学科的、极富挑战性的、人类亟待解决的科研课题,如图1-1所示。
除此之外还有很多研究项目需要巨大的计算能力,例如:
1)解决较为复杂的数学问题,例如:GIMPS(寻找最大的梅森素数)。
梅森素数(Mersenne Prime)是指形如2^p-1的正整数,其中指数p是素数,常记为Mp。若Mp是素数,则称为梅森素数。p=2,3,5,7时,Mp都是素数,但M11=2047=23×89不是素数,是否有无穷多个梅森素数是数论中未解决的难题之一。截至2012年7月已累计发现47个梅森素数,最大的是p=43,112,609,此时Mp是一个12,978,189位数。
值得一提的是,中国的一位数学家算出了梅森素数的分布规律图,并用简练的数学公式描述了出来。如果借助计算机的并行计算,也许会对寻找该数字分布规律有所帮助。
2)研究寻找最为安全的密码系统,例如:RC-72(密码破解)。
3)生物病理研究,例如:Folding@home(研究蛋白质折叠、误解、聚合,以及由此引起的相关疾病)。
4)各种各样疾病的药物研究,例如:United Devices(对抗癌症的有效药物)。
5)信号处理,例如:SETI@Home(寻找地球外文明)。
由上不难看出,这些项目都很庞大,都需要惊人的计算量,仅由单个电脑或个人在一个能让人接受的时间内计算完成是决不可能的。在以前,这些问题都应该由超级计算机来解决。但是,超级计算机的造价和维护非常昂贵,这不是一个普通的科研组织能承受的。随着科学的发展,一种廉价的、高效的、维护方便的计算方法应运而生——分布式计算!
所谓分布式计算其实就是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。
会员免费下载
链接:https://pan.baidu.com/s/1ETtKgfezaBpEBuBzBvBlcQ
提取码: ****** 查看
成为本站VIP会员即可无限下载。 请先点击百度网盘,看资源是否还在,不在请点击链接通知站长补资源。
资源标签点击标签可查看对应分类的资源