第1章 分布式系统概述
1.1 什么是分布式系统
1.2 分布式系统常用术语
1.3 集中式系统与分布式系统
1.4 分布式系统特征
1.5 设计分布式系统所面临的挑战
1.6 本章小结
1.7 习题
第2章 节点
2.1 什么是线程
2.2 进程和线程
2.3 线程和纤程
2.4 编程语言中的线程对象
2.4.1 定义和启动一个线程
2.4.2 暂停线程执行
2.4.3 中断线程
2.4.4 等待另一个线程完成
2.5 节点之间的通信
2.5.1 消息丢失
2.5.2 消息乱序
2.5.3 数据错误
2.5.4 不可靠的TCP
2.6 本章小结
2.7 习题
第3章 通信
3.1 本地过程调用
3.1.1 本地过程调用的概念
3.1.2 本地过程调用的实现
3.2 远程过程调用
3.2.1 远程过程调用原理
3.2.2 如何实现远程过程调用
3.2.3 远程过程调用API
3.2.4 远程过程调用发展历程
3.3 常用网络I/O模型
3.3.1 阻塞I/O模型
3.3.2 非阻塞I/O模型
3.3.3 I/O复用模型
3.3.4 信号驱动I/O模型
3.3.5 异步I/O模型
3.3.6 几种I/O模型的比较
3.4 I/O操作中的常用术语
3.4.1 阻塞和非阻塞
3.4.2 同步与异步
3.4.3 总结
3.5 实战:在Java中实现常用网络I/O模型
3.5.1 Java OIO
3.5.2 Java NIO
3.5.3 Java AIO
3.6 事件驱动
3.6.1 事件驱动编程
3.6.2 事件循环的实现
3.6.3 Reactor模型
3.6.4 Proactor模型
3.7 本章小结
3.8 习题
第4章 并发与并行
4.1 并发与并行的区别
4.2 线程与并发
4.3 并发带来的风险
4.3.1 死锁
4.3.2 饥饿
4.3.3 活锁
4.4 解决并发风险
4.4.1 同步
4.4.2 原子访问
4.5 提升系统并发能力
4.5.1 无锁化设计提升并发能力
4.5.2 缓存提升并发能力
4.5.3 更细颗粒度的并发单元
4.6 本章小结
4.7 习题
第5章 面向对象的分布式架构
5.1 基于对象的分布式架构
……
第6章 面向服务的分布式架构
第7章 面向消息的分布式架构
第8章 REST风格的架构
第9章 微服务架构
第10章 Serverless架构
第11章 Cloud Native架构
第12章 虚拟化与容器技术
第13章 分布式计算
第14章 分布式存储
第15章 分布式监控
第16章 分布式版本控制
第17章 数据一致性
第18章 分布式事务
第19章 安全性
第20章 可用性
第21章 综合实战:基于Spring Cloud的微服务架构设计与实现
附录 本书所涉及的软件及相关版本
参考文献
展开