从程序员到架构师十多年实战总结大规模分布式系统架构与设计实战
本篇是作者从程序员到首席架构师十多年职业生涯的实战经验总结,系统讲解构建大规模分布式系统的核心技术与实现方法,包含作者开源的Fourinone系统的设计与实现过程,手把手教你掌握分布式技术。通过学习这个系统的实现方法与相关的理论,读者可快速掌握分布式系统的理论并设计自己的分布式系统。
本篇从分布式计算的基本概念开始,解剖了众多流行概念的本质,深入讲解分布式系统的基本原理与实现方式,包括master-slave结构、消息中枢模式、网状直接交互模式、并行结合申行模式等,以及Fourinone系统的架构、实现分布式功能的示例。
接下来详细介绍分布式协调、分布式缓存、消息队列、分布式文件系统、分布式作业调度平台的设计与实现方法,不仅包括详细的架构原理,算法,还给出了实现步骤,核心API、实现代码。随书附带的光盘包括书中示例代码以及Fourinone 系统源代码。
全篇分为7章,总共299页的内容,由于细节内容实在是太多了,小编只把部分知识点截图出来粗略的介绍一下,每个小节都有更加细化的内容,大家要用心慢慢去揣摩。
第1章,概述
在概述分布式核心技术之前,我们有必要先概括阐述一- 下分布式计算、并行计算、云计算等相关概念,以及市场上流行的相关技术产品,如Hadoop生态体系,然后再结合背景引出我们为什么要归纳出一个轻量级的分布式框架。本章为后续章节的背景。本章意在使读者对分布式技术话题的前因后果先有所了解。
由于只是概述,我们对涉及的分布式计算概念和Hadoop生态体系只是蜻蜓点水地带过,目的仅是让读者了解到这些内容大致是什么。
第2章,分布式并行计算的原理与实践
本章首先讲述分布式并行计算的各种设计模式和原理机制,并进一步说明Fourinone与市场上其他并行计算产品和技术的区别,最后手把手演示大量并行计算案例。
本章讲述的分布式并行计算思想、模式、技巧、实现,与编程语言无关,读者可以用多台计算机来尝试编程。
第3章,分布式协调的实现
分布式协调是分布式应用中不可缺少的,通常会设立专门的协调者角色,即将多机协调的职责从分布式应用中独立出来,以减少系统的耦合性和增强可扩展性。Apache的ZooKeeper、Google的Chubby都是分布式协调的实现者。Fourinone实际上可以单独当做ZooKeeper用,它使用最少的代码实现了ZooKeeper的所有功能,并且力图做到功能更强、使用更简洁。
本章会从设计角度讲述分布式协调系统的实现原理,包括归纳出的API介绍,权限机制介绍,并详细阐述了在领导者选举机制上和Paxos算法的区别,最后再结合实践中的统一配置和集群管理等应用讲解demo,让读者有更直观的体会。
第4章,分布式缓存的实现
本章讲述小型缓存、大型分布式缓存的原理和实现机制,并且讲述经典的一致哈希算法原理,以及改进的基于H期key取模和分组算法去做集群负载均衡和扩容,最后讲述一个分布式Session的实现案例,以及相关的配置属性。
第5章,消息队列的实现
本章讲述了中间件和消息队列(MQ)的发展史JMS规范定义的发送/接收、主题订阅两种经典消息服务模式的机制原理,并详细举例说明如何在Fourinone中实现这两种经典模式。
第6章,分布式文件系统的实现
本章讲述如何使用FTTP去实现-一个分布式文件系统,包括FTTP的架构原理和远程文件各种方式的访问和操作,以及整型数据处理等,包含了每一- 步的具体操作,可帮助入门的读者快速上手。
第7章,分布式作业调度平台的实现
在前面第2章介绍的分布式并行计算原理中,我们看到可以将工头工人程序部署到不同的机器上运行,然后完成计算。但是, .当这样的并行计算应用非常多,而我们的机器数量有限时,我们需要排队依次来使用机器,第-一个并行计算应用跑完了,再跑第二个应用,如果第一个并行计算应用只占部分机器,那么可以考虑同时跑第二个应用....这就涉及建立-一个作业调度平台去完成。
我们知道Hadoop本身包含了作业调度的部分,按照Hadoop开发规范,开发好一一个作业,打包后,Hadoop 会分发到相应的机器上去运行,但是实际上这仅仅是-种任务调度层面的实现,我们还需要资源层面的调度,比如对CPU、内存、带宽等的分配和管理。
本章会讲述调度平台的设计和实现,包括任务调度和资源调度的实现机制,各种资源调度算法,并以MPI调度器的为例讲述一个完整Demo,最后再讲述市场上常用的调度实现和框架,比如Torque、Mesos、Yarn等。
由于文章篇幅限制,小编这里就不做更多的介绍了,需要本‘大规模分布式系统架构与设计实战’技术文档的小伙伴就可以转发关注一下小编++++++ V x ①⑧①③③⑤③②⑨⑦ 就可以获取了!
本篇从作者的实战经验出发,深入浅出地讲解了如何建立一个Hadoop那样的分布式系统,实现对多台计算机CPU、内存、硬盘的统一利用, 从而获取强大计算能力去解决复杂问题。-一般互联网企业的分布式存储计算系统都是个大平台,系统复杂、代码庞大,而且只适合公司的业务,工程师很难下载安装到自己的电脑里学习和吃透。
本篇对分布式核心技术进行了大量归纳和总结,并从中抽取出一套简化的框架和编程API进行讲解,方便工程师了解分布式系统的主要技术实现。这不是一本空谈概念、 四处摘抄的,本篇包含了大量精炼示例,手把手教你掌握分布式核心技术。
本篇主要内容
分 布式并行计算的基本原理解剖;
分布式协调的实现, 包括如何实现公共配置管理,如何实现分布式锁,如何实现集群管理等;
分布式缓存的实现,包括如何提供完整的分布式缓存来利用多机内存能力;
消息队列的实现, 包括如何实现发送和接收模式;
分布式文件 系统的实现,包括如何像操作本地文件一样操作远程文件, 并利用多机硬盘存储能力;
分布式作业调度平台的实现,包括资源隔离、资源调度等。
大家加油吧!