微服务、云原生、 kubemete Service Mesh 是分布式领域的热点技术,它们并不是凭空出现的,一定继承了某些“前辈”的优点。我们不仅要了解这些技术,还要深入理解其发展脉络、原理等,才能游刃有余地将其用于现有的项目开发或老系统改造中。
本书总计9章。全面地讲解了分布式领域的热点,让你可以轻松从0到1,从无到有。
不论你是有十几年研发经验还是架构经验的 IT 老手,还是刚入门系统架构的 IT 新手,本书全部可以对你理解分布式架构和微服务架构大有助益。
第1章深入理解网络
网络之于分布式系统,就好像双翼之于飞鸟。随着虚拟化、云计算和大数据的不断发展,深入理解网络变得越来越重要。
第2章分布式系统的经典理论
分布式系统从诞生到现在已经有几十个年头了,其中伴随着一些很重要的基础理论,正如这些影响深远的基础理论,奠定了分布式系统的坚实基础,造就了分布式领域的一座座宏伟厦。为了练就一身武功,让我们从这些经典的分布式理论开始学起吧。
第3章聊聊RPC
每个分布式系统都离不开多进程的通信问题,包括本机上多进程之间的IPC通信和基于网络的远程通信技术,后者是分布式系统架构中的核心和关键基础技术之一,就远程通信而言,抛开各种专用系统的远程通信协议如 NFS、FTP、SNMP、SMTP、POP3不说,各种通用的远程通信技术也在不断发展和变化,比如从最古老的RPC 远程通信技术到曾经风靡一时的SOAP( Web Service)协议,再到后面红极一时的HTTP REST。如今,由于移动互联网和大数据时代的兴起,支持多语言与高性能传输的各种RPC架构再次成为热点技术。
第4章深入浅析内存
除了CPU,内存大概是最重要的计算资源了。基本成为分布式系统标配的缓存中间件、高性能的数据处理系统及当前流行的大数据平台,都离不开对计算机内存的深入理解与巧妙使用。在本章中我们将探索这个让人感到既熟悉又复杂的领域。
第5章深入解析分布式文件存储
分布式文件系统是大型分布式系统中非常重要的基础设施。Hadoop中最重要的技术不是MapReduce,而是 HDFS。除了HDFS,Spark还可以与老牌分布式文件系统GlusterFS结合使用。OpenStack中最重要且能独立运营的子系统是分布式对象存储系统Swift。Docker 及 Kubernetes容器技术依然需要通过分布式文件系统实现批量处理任务中的共享存储问题。更不用说,无数电商系统都需要一个分布式文件系统来存储海量照片。因此,掌握分布式存储相关的知识和技能,对于一名分布式系统架构师来说非常重要。
第6章聊聊分布式计算
不管是网络、内存还是存储的分布式,它们的最终目标都是实现计算的分布式:数据在各个计算机节点上流动,同时各个计算机节点都能以某种方式访问共享数据,最终分布式计算后的输出结果被持久化存储和输出。分布式计算作为分布式系统里最重要的一个能力和目标,也是大数据系统的关键技术之一。经过多年的发展与演进,目前业界已经存在很多成熟的分布式计算开源编程框架和平台。作为架构师,我们应该尽可能地了解和掌握这些框架和平台。
第7章全文检索与消息队列中间件
在前面的章节中,我们学习了构建一个分布式系统所必需的各种基本知识和技能,比如分布式系统的基础理论、网络编程技术、RPC架构、内存计算、分布式文件系统、分布式计算框架等,但仅仅掌握这些内容还是远远不够的,我们还需要学习和掌握分布式系统中常用的一些中间件,这些中间件主要用于分布式系统中常见的一些业务场景:数据全文检索、日志和消息处理、数据库的分片、网站的负载均衡等。由于篇幅有限,本章只对全文检索与消息队列这两个用途广泛又相对复杂的中间件进行全面介绍。
第8章微服务架构
微服务架构是当前很热门的一个概念,是技术发展的必然结果。微服务架构也不是一个缥缈、空洞的术语,它的核心理念与架构原则是实实在在的,虽然微服务架构没有公认的技术标准和规范草案,但业界已经有一些很有影响力的开源微服务架构平台,架构师可以根据公司的技术实力并结合项目的特点来选择某个合适的微服务架构平台,稳妥地实施项目的微服务化改造或开发进程。
第9章架构实践
在本书最后一章,我们将通过实践继续强化自己的“架构解密”能力。