《架构解密:从分布式到微服务(第2版)》带你了解分布式领域热点技术,深入理解其发展脉络、原理等。微服务、云原生、Kubernetes、Service Mesh是分布式领域的热点技术,它们并不是凭空出现的,一定继承了某些“前辈”的优点。我们不仅要了解这些技术,还要深入理解其发展脉络、原理等,才能游刃有余地将其用于现有的项目开发或老系统改造中。本书总计9章。第1章讲解分布式的基础——网络,对国际互联网、NIO、AIO、网络传输中的对象序列化问题、HTTP的前世今生、TCP/IP、从CDN到SD-WAN等知识进行深入讲解。第2章讲解分布式系统的经典理论,涉及分布式系统的设计理念、一致性原理;ZooKeeper的使用场景;CAP理论的前世今生;BASE准则;分布式事务的原理。第3章从RPC开始,讲解分布式服务治理框架的起源与原理,并讲解ZeroC Ice的原理和微服务架构实战。第4~6章以专题形式讲解内存、分布式文件存储和分布式计算,对每个专题都讲解相关的重要理论、产品、开源项目及经验等。第7章深入讲解全文检索与消息队列中间件的原理及用法。第8章讲解以Kubernetes为代表的微服务架构解决了传统架构的哪些痛点;Service Mesh解决了微服务架构的哪些问题,以及如何理解它的原理和核心内容。第9章分享作者的架构实践经验。不论你是有十几年研发经验及架构经验的IT老手,还是刚入门系统架构的IT新手,本书都能对你理解分布式架构和微服务架构大有助益。
第1章 深入理解网络 1
1.1 从国际互联网开始 1
1.2 NIO,一本难念的经 7
1.2.1 难懂的ByteBuffer 7
1.2.2 晦涩的“非阻塞” 15
1.2.3 复杂的Reactor模型 18
1.3 AIO,大道至简的设计与苦涩的现实 21
1.4 网络传输中的对象序列化问题 26
1.5 HTTP的前世今生 30
1.5.1 HTTP的设计思路 31
1.5.2 HTTP如何保持状态 32
1.5.3 Session的秘密 34
1.5.4 再谈Token 36
1.5.5 分布式Session 39
1.5.6 HTTP与Service Mesh 40
1.6 分布式系统的基石:TCP/IP 42
1.7 从CDN到SD-WAN 45
1.7.1 互联互不通的运营商网络 45
1.7.2 双线机房的出现 45
1.7.3 CDN的作用 46
1.7.4 SD-WAN技术的诞生 47
第2章 分布式系统的经典理论 48
2.1 从分布式系统的设计理念说起 48
2.2 分布式系统的一致性原理 50
2.3 分布式系统的基石之ZooKeeper 53
2.3.1 ZooKeeper的原理与功能 53
2.3.2 ZooKeeper的应用场景案例分析 57
2.4 经典的CAP理论 61
2.5 BASE准则,一个影响深远的指导思想 63
2.6 重新认识分布式事务 64
2.6.1 数据库单机事务的实现原理 64
2.6.2 经典的X/OpenDTP事务模型 66
2.6.3 互联网中的分布式事务解决方案 68
第3章 聊聊RPC 73
3.1 从IPC通信说起 73
3.2 古老又有生命力的RPC 75
3.3 从RPC到服务治理框架 81
3.4 基于ZeroC Ice的微服务架构指南 84
3.4.1 ZeroC Ice的前世今生 84
3.4.2 ZeroC Ice微服务架构指南 86
3.4.3 微服务架构概述 93
第4章 深入浅析内存 99
4.1 你所不知道的内存知识 99
4.1.1 复杂的CPU与单纯的内存 99
4.1.2 多核CPU与内存共享问题 101
4.1.3 著名的Cache伪共享问题 105
4.1.4 深入理解不一致性内存 107
4.2 内存计算技术的前世今生 110
4.3 内存缓存技术分析 115
4.3.1 缓存概述 115
4.3.2 缓存实现的几种方式 117
4.3.3 Memcache的内存管理技术 119
4.3.4 Redis的独特之处 121
4.4 内存计算产品分析 122
4.4.1 SAP HANA 123
4.4.2 Hazelcast 125
4.4.3 VoltDB 127
第5章 深入解析分布式文件存储 130
5.1 数据存储进化史 130
5.2 经典的网络文件系统NFS 137
5.3 高性能计算领域的分布式文件系统 140
5.4 企业级分布式文件系统GlusterFS 142
5.5 创新的Linux分布式存储系统——Ceph 145
5.6 星际文件系统IPFS 151
5.7 软件定义存储 155
第6章 聊聊分布式计算 161
6.1 不得不说的Actor模型 161
6.2 Actor原理与实践 165
6.3 初识Akka 172
6.4 适用面很广的Storm 179
6.5 MapReduce及其引发的新世界 187
第7章 全文检索与消息队列中间件 194
7.1 全文检索 194
7.1.1 Lucene 195
7.1.2 Solr 199
7.1.3 ElasticSearch 202
7.2 消息队列 210
7.2.1 JEE专属的JMS 214
7.2.2 生生不息的ActiveMQ 219
7.2.3 RabbitMQ 223
7.2.4 Kafka 230
第8章 微服务架构 236
8.1 微服务架构概述 236
8.1.1 微服务架构兴起的原因 237
8.1.2 不得不提的容器技术 238
8.1.3 如何全面理解微服务架构 241
8.2 几种常见的微服务架构方案 245
8.2.1 ZeroC IceGrid微服务架构 245
8.2.2 Spring Cloud微服务架构 248
8.2.3 基于消息队列的微服务架构 250
8.2.4 Docker Swarm微服务架构 251
8.3 深入Kubernetes微服务平台 253
8.3.1 Kubernetes的概念与功能 253
8.3.2 Kubernetes的组成与原理 258
8.3.3 基于Kubernetes的PaaS平台 262
8.4 从微服务到Service Mesh 280
8.4.1 Service Mesh之再见架构 280
8.4.2 Envoy核心实践入门 282
8.4.3 Istio背后的技术 286
8.4.4 Istio的架构演变 293
第9章 架构实践 297
9.1 公益项目wuhansun实践 297
9.2 身边购平台实践 306
9.3 DIY一个有难度的分布式集群 312