架构解密:从分布式到微服务是一本架构解密分析书籍,由Leader-us编著。本书从传统分布式架构讲到了基于容器技术的微服务架构,内容涉及Microservices、Kubernetes、SOA、Distribute Memory、ElasticSearch、Kafka、CAP、NUMA、SOA、GlusterFS、Actor、Akka、RabbitMQ、Spring Cloud、ZeroC Ice,是Leader-us多年架构经验的倾情分享,主要面向关注分布式架构及微服务,以及有志于成为实力派架构师的IT人士。
分布式架构与微服务平台是当今IT界的关键技术,也是资深软件工程师和系统架构师必须掌握的核心技术。《架构解密:从分布式到微服务》以从传统分布式架构迁移到基于容器技术的微服务架构为主线,全面、透彻地介绍了与分布式架构及微服务相关的知识和技术。全书一开始并没有提及分布式的枯燥理论,而是讲述了一段精彩的IT发展史,其中重点讲述了大型机、UNIX小机器的没落与X86平台的崛起,从而巧妙地引出CPU、内存、网络、存储的分布式演进过程,这恰恰是分布式软件系统赖以运行的“物质基础”。然后简明扼要地介绍了进行系统架构所必需的网络基础,并详细介绍了分布式系统中的经典理论、设计套路及RPC通信,对内存、SOA架构、分布式存储、分布式计算等进行了深度解析,最后详细介绍了全文检索与消息队列中间件,以及微服务架构所涉及的重点内容。
《架构解密:从分布式到微服务》是Leader-us多年架构经验的倾情分享,主要面向关注分布式架构及微服务,以及有志于成为实力派架构师的IT人士。
目录
- 第1章 大话分布式系统 1
- 1.1 IT争霸战 1
- 1.1.1 划时代的第一台计算机 1
- 1.1.2 IT界的恐龙时代 4
- 1.1.3 贵族的没落与平民的胜利 6
- 1.1.4 ARM新贵的爆发 10
- 1.1.5 超级计算机的绝地反击 11
- 1.2 分布式系统的开国元勋 13
- 1.3 分布式系统的基石:TCP/IP 17
- 1.4 从无奈到崛起的CDN网 19
- 1.5 这是一个最好的时代 21
- 第2章 “知识木桶”中的短板—— 网络基础 23
- 2.1 即使高手也不大懂的网络 23
- 2.2 NIO,一本难念的经 30
- 2.2.1 难懂的ByteBuffer 30
- 2.2.2 晦涩的“非阻塞” 39
- 2.2.3 复杂的Reactor模型 41
- 2.3 AIO,大道至简的设计与苦涩的现实 45
- 2.4 网络传输中的对象序列化问题 50
- 第3章 分布式系统的经典基础理论 55
- 3.1 从分布式系统的设计理念说起 55
- 3.2 分布式系统的一致性原理 58
- 3.3 分布式系统的基石之ZooKeeper 61
- 3.3.1 ZooKeeper的原理与功能 61
- 3.3.2 ZooKeeper的场景案例分析 65
- 3.4 经典的CA理论 69
- 3.5 BASE准则,一个影响深远的指导思想 72
- 3.6 重新认识分布式事务 73
- 3.6.1 数据库单机事务的实现原理 73
- 3.6.2 经典的X/OpenDTP事务模型 75
- 3.6.3 互联网中的分布式事务解决方案 78
- 第4章 聊聊RPC 83
- 4.1 从IPC通信说起 83
- 4.2 古老又有生命力的RPC 85
- 4.3 从RPC到服务治理框架 91
- 4.4 基于ZeroC Ice的微服务架构指南 94
- 4.4.1 微服务架构概述 95
- 4.4.2 ZeroC Ice微服务架构指南 100
- 第5章 深入浅析内存 107
- 5.1 你所不知道的内存知识 107
- 5.1.1 复杂的CPU与单纯的内存 107
- 5.1.2 多核CPU与内存共享的问题 110
- 5.1.3 著名的Cache伪共享问题 113
- 5.1.4 深入理解不一致性内存 115
- 5.2 内存计算技术的前世今生 118
- 5.3 内存缓存技术分析 123
- 5.3.1 缓存概述 123
- 5.3.2 缓存实现的几种方式 125
- 5.3.3 学习Memcache的内存管理技术 127
- 5.3.4 Redis的独特之处 129
- 5.4 内存计算产品分析 131
- 5.4.1 SAP HANA 131
- 5.4.2 Hazelcast 133
- 5.4.3 VoltDB 135
- 第6章 深入解析分布式存储 138
- 6.1 数据存储进化史 138
- 6.2 经典的网络文件系统NFS 145
- 6.3 高性能计算领域的分布式文件系统 148
- 6.4 企业级分布式文件系统GlusterFS 150
- 6.5 创新的Linux分布式存储系统—— Ceph 153
- 6.6 软件定义存储 160
- 第7章 聊聊分布式计算 166
- 7.1 不得不说的Actor模型 166
- 7.2 Actor原理与实践 170
- 7.3 初识Akka 177
- 7.4 适用面很广的Storm 185
- 7.5 MapReduce及其引发的新世界 194
- 第8章 全文检索与消息队列中间件 201
- 8.1 全文检索 201
- 8.1.1 什么是全文检索 201
- 8.1.2 起于Lucene 202
- 8.1.3 Solr 206
- 8.1.4 ElasticSearch 209
- 8.2 消息队列 217
- 8.2.1 消息队列概述 217
- 8.2.2 JEE专属的JMS 221
- 8.2.3 生生不息的ActiveMQ 226
- 8.2.4 RabbitMQ 231
- 8.2.5 Kafka 238
- 第9章 微服务架构 244
- 9.1 微服务架构概述 244
- 9.1.1 微服务架构兴起的原因 244
- 9.1.2 不得不提的容器技术 246
- 9.1.3 如何全面理解微服务架构 249
- 9.2 几种常见的微服务架构方案 253
- 9.2.1 ZeroC IceGrid微服务架构 253
- 9.2.2 Spring Cloud微服务架构 256
- 9.2.3 基于消息队列的微服务架构 259
- 9.2.4 Docker Swarm微服务架构 261
- 9.3 深入Kubernetes微服务平台 263
- 9.3.1 Kubernetes的概念与功能 263
- 9.3.2 Kubernetes的组成与原理 268
- 9.3.3 基于Kubernetes的PaaS平台