编辑推荐
本书从软件结构的发展历史入手,描述了分布式架构的特性和存在的问题,并围绕这些问题展开了分析和实践。
内容简介
作者从为什么、是什么、怎么办这三个方面,分别讲解了分布式应用服务的拆分、分布式调用、分布式协同、分布式计算、分布式存储、分布式资源管理和调度、高性能与可用性以及指标与监控等内容,基本涵盖了分布式技术的要点。
作者简介
作者崔皓,资深架构师,10年分布式架构经验。曾任惠普技术专家。
章节目录
版权信息
前言
第1章 分布式架构设计的特征与问题
1.1 架构设计的演进过程
1.1.1 应用与数据一体模式
1.1.2 应用与数据分离模式
1.1.3 缓存与性能的提升
1.1.4 服务器集群处理并发
1.1.5 数据库读写分离
1.1.6 反向代理和 CDN
1.1.7 分布式数据库与分表分库
1.1.8 业务拆分
1.1.9 分布式与微服务
1.2 一个简单的例子:分布式架构的组成
1.2.1 架构概述与分层
1.2.2 客户端与 CDN
1.2.3 接入层
1.2.4 应用层
1.2.5 存储层
1.3 分布式架构的特征
1.4 分布式架构的问题
1.4.1 分布式架构的逻辑结构图
1.4.2 应用服务拆分
1.4.3 分布式调用
1.4.4 分布式协同
1.4.5 分布式计算
1.4.6 分布式存储
1.4.7 分布式资源管理与调度
1.4.8 高性能与可用性
1.4.9 指标与监控
1.5 本书的阅读方式
1.6 总结
第2章 分布式应用服务的拆分
2.1 起因与概念
2.2 拆分思路
2.3 模型结构
2.3.1 通用语言
2.3.2 领域、子域和限界上下文
2.3.3 实体和值类型
2.3.4 聚合和聚合根
2.3.5 领域事件
2.4 分析业务需求形成应用服务
2.4.1 分析业务流程
2.4.2 抽取领域对象和生成聚合
2.4.3 划定限界上下文
2.5 领域驱动设计分层
2.5.1 分层的概述与原则
2.5.2 分层的内容
2.5.3 分层的总结
2.5.4 服务内部的分层调用与服务间的调用
2.5.5 把分层映射到代码结构
2.5.6 代码分层示例
2.6 总结
第3章 分布式调用
3.1 负载均衡
3.1.1 负载均衡分类
3.1.2 负载均衡算法
3.2 API 网关
3.2.1 API 网关的定义
3.2.2 API 网关的服务定位
3.2.3 API 网关的技术原理
3.3 服务注册与发现
3.3.1 服务注册与发现的概念和原理
3.3.2 服务注册中心的可用性
3.3.3 服务注册中心的服务保存
3.4 服务间的远程调用
3.4.1 RPC 调用过程
3.4.2 RPC 动态代理
3.4.3 RPC 序列化
3.4.4 协议编码
3.4.5 网络传输
3.4.6 Netty 实现 RPC
3.5 总结
第4章 分布式协同
4.1 分布式系统的特性与互斥问题
4.1.1 集中互斥算法
4.1.2 基于许可的互斥算法
4.1.3 令牌环互斥算法
4.2 分布式锁
4.2.1 分布式锁的由来和定义
4.2.2 通过 Redis 缓存实现分布式锁
4.2.3 通过 ZooKeeper 实现分布式锁
4.2.4 分布式分段加锁
4.3 分布式事务
4.3.1 ACID 理论
4.3.2 CAP 理论
4.3.3 BASE 理论
4.3.4 DTP 模型
4.3.5 分布式事务 2PC 解决方案
4.3.6 分布式事务 TCC 解决方案
4.4 分布式选举
4.4.1 Bully 算法
4.4.2 Raft 算法
4.4.3 ZAB 算法
4.5 ZooKeeper
4.5.1 从一个简单的例子开始
4.5.2 Znode 的原理与使用
4.5.3 Watcher 原理与使用
4.5.4 Version 的原理与使用
4.5.5 会话的原理与使用
4.5.6 服务群组
4.6 总结
第5章 分布式计算
5.1 MapReduce 模式
5.1.1 MapReduce 的策略和理念
5.1.2 MapReduce 的体系结构
5.1.3 MapReduce 的工作流程
5.1.4 MapReduce 的应用实例
5.2 Stream 模式
5.2.1 Stream 模式的处理过程及特点
5.2.2 Storm 的体系结构与工作原理
5.2.3 Storm 的并发机制
5.2.4 Stream Grouping
5.2.5 Storm 集群架构
5.3 总结
第6章 分布式存储
6.1 数据存储面临的问题以及解决思路
6.1.1 RAID 磁盘阵列
6.1.2 分布式存储的组成要素
6.2 分布式数据库
6.2.1 分表分库
6.2.2 主从复制
6.2.3 数据扩容
6.3 分布式缓存
6.3.1 缓存分片算法
6.3.2 Redis 集群方案
6.3.3 缓存节点之间的通信
6.3.4 请求分布式缓存的路由
6.3.5 缓存节点的扩展和收缩
6.3.6 缓存故障的发现和恢复
6.4 总结
第7章 分布式资源管理和调度
7.1 分布式资源调度的由来与过程
7.1.1 资源调度可以解决什么问题
7.1.2 资源调度过程
7.2 资源划分和调度策略
7.2.1 Linux Container 资源是如何划分的
7.2.2 任务与资源如何匹配
7.3 分布式调度架构
7.3.1 中央式调度器
7.3.2 两级调度器
7.3.3 共享状态调度器
7.4 Kubernetes
7.4.1 Kubernetes 架构概述
7.4.2 从一个例子开始
7.4.3 kubectl 和 API Server
7.4.4 controller manager、Scheduler 和 kubelet
7.4.5 Service 和 kubelet
7.5 总结
第8章 高性能与可用性
8.1 缓存的应用
8.1.1 处处皆缓存
8.1.2 动静分离
8.1.3 HTTP 缓存
8.1.4 CDN 缓存
8.1.5 DNS 结构与访问流程
8.1.6 负载均衡实现动态缓存
8.1.7 进程内缓存
8.1.8 分布式进程缓存
8.2 可用性
8.2.1 请求限流
8.2.2 服务降级
8.2.3 服务熔断
8.3 总结
第9章 指标与监控
9.1 为什么需要监控系统
9.2 监控系统的指标
9.3 创建监控系统的步骤
9.4 监控系统的分类
9.4.1 日志类监控
9.4.2 调用链监控
9.4.3 度量类监控:LSM Tree 和 LevelDB
9.5 监控系统的分层
9.6 Zabbix 实现监控系统
9.6.1 Zabbix 构建监控系统过程
9.6.2 Zabbix 架构的安装和配置
9.6.3 Zabbix 监控方式
9.7 Prometheus 实现监控系统
9.7.1 Prometheus 系统架构
9.7.2 时间序列与 Metric 数据模型
9.7.3 Exporter 采集数据与服务发现
9.7.4 报警规则的定义和报警路由的分发
9.8 总结
第10章 架构设计思路和要点
10.1 架构设计思维方式
10.1.1 架构师的设计模型
10.1.2 过程设计模型
10.1.3 协作式设计模型
10.1.4 扩展立方设计模型
10.2 重构与测试
10.2.1 代码重构
10.2.2 性能测试与压力测试
10.3 学习与发展
10.3.1 思维方式
10.3.2 学习提升
10.3.3 职业发展
10.4 总结
作者简介
分布式架构原理与实践是2021年由人民邮电出版社出版,作者崔皓。
得书感谢您对《分布式架构原理与实践》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。