暂无商品咨询信息 [发表商品咨询]
本书的主要内容有:理解模式与可复用组件如何助力快速开发可靠的分布式系统。通过边车模式、适配器模式和大使模式,将应用程序拆分为单机上的容器组。探索用于组件间复制、扩展与通信的松耦合多节点分布式模式。学习适用于批处理工作队列、事件驱动处理及协调式工作流的大规模批数据处理分布式模式。
Brendan Burns现任微软公司副总裁,负责Azure管理与治理、Azure Arc、Azure Kubernetes服务、Azure Linux服务,以及PowerShell等核心业务。
目录
前言 1
第一部分 基础概念
第1 章 概述 9
1.1 系统开发简史 9
1.2 软件开发模式的演进历程 10
1.2.1 算法编程的规范化 . 11
1.2.2 面向对象编程模式 . 11
1.2.3 开源软件的崛起 11
1.3 模式、实践与组件的价值 12
1.3.1 站在巨人的肩膀上 .12
1.3.2 用于讨论实践的通用语言 12
1.3.3 便于复用的共享组件.13
1.4 小结 .14
第2 章 分布式系统核心概念 .15
2.1 API 与RPC 15
2.2 时延性能指标 .16
2.3 可靠性 16
2.4 百分位数17
2.5 幂等性 18
2.6 交付语义18
2.7 关系完整性 19
2.8 数据一致性 20
2.9 编排与Kubernetes 21
2.10 健康检查 .22
2.11 小结 22
第二部分 单节点模式
第3 章 边车模式 25
3.1 边车模式示例:为遗留服务添加HTTPS 支持 .26
3.2 基于边车模式的动态配置 27
3.3 模块化应用容器 28
3.4 基于边车模式构建简易PaaS 平台 30
3.5 边车模块化与可复用性设计 30
3.5.1 容器参数化配置 31
3.5.2 定义容器的API 接口 32
3.5.3 容器文档化 33
3.6 小结 .35
第4 章 大使模式 37
4.1 使用大使模式实现服务分片 38
4.2 使用大使模式实现服务代理 42
4.3 使用大使模式进行实验或请求分流.42
4.4 小结 .46
第5 章 适配器 47
5.1 监控 .48
5.2 日志记录50
5.3 添加健康监控器 52
5.4 小结 .55
第三部分 服务模式
第6 章 多副本负载均衡服务 .61
6.1 无状态服务 61
6.1.1 负载均衡的就绪检测.62
6.1.2 实战演练:在Kubernetes 中创建多副本服务 63
6.2 会话保持服务 .65
6.3 应用层多副本服务 66
6.4 引入缓存层 66
6.4.1 部署缓存 .66
6.4.2 实战演练:部署缓存层 68
6.5 扩展缓存层 70
6.5.1 速率限制与拒绝服务防御 70
6.5.2 SSL 终止 .71
6.5.3 实战演练:部署Nginx 与SSL 终止 .72
6.6 小结 .75
第7 章 分片服务 77
7.1 分片缓存78
7.1.1 为何需要分片缓存 .78
7.1.2 缓存对于系统性能的影响 79
7.1.3 多副本分片缓存 80
7.1.4 实战演练:部署大使模式与Memcache 实现分片缓存 81
7.2 分片函数解析 .85
7.2.1 选择键 86
7.2.2 一致性哈希函数 88
7.2.3 实战演练:构建一致性HTTP 分片代理 .88
7.3 分片多副本服务 89
7.4 热分片系统 89
7.5 小结 .90
第8 章 分散模式与聚集模式 .91
8.1 从根节点分发的分散/ 聚集模式 92
8.2 基于叶子分片的分散/ 聚集模式 94
8.2.1 实战演练: 分片文档搜索 95
8.2.2 选择合适的叶子节点数量 96
8.3 提升分散/ 聚集模式的可靠性与规模 .97
8.4 小结 .98
第9 章 函数与事件驱动处理 .99
9.1 确定何时使用FaaS100
9.1.1 FaaS 的优势 100
9.1.2 FaaS 的挑战 100
9.1.3 对后台处理的需求 101
9.1.4 将数据保留在内存中的需求 102
9.1.5 持续的基于请求的处理成本 102
9.2 FaaS 模式 103
9.2.1 装饰器模式:请求或响应转换 103
9.2.2 实战演练:在请求处理前添加请求默认值 .104
9.2.3 处理事件 105
9.2.4 实战演练:实现双重认证 106
9.2.5 基于事件的管道 108
9.2.6 实战演练:实现新用户注册管道 .108
9.3 小结 110
第10 章 所有权选举 111
10.1 确定是否需要领导者选举 112
10.2 领导者选举概要 114
10.2.1 实战演练:部署etcd 115
10.2.2 实现锁 . 116
10.2.3 实战演练:在etcd 中实现锁 119
10.2.4 实现所有权121
10.2.5 实战演练:在etcd 中实现租约 122
10.3 处理并发数据操作 123
10.4 小结 125
第四部分 批处理计算模式
第11 章 工作队列系统 . 129
11.1 通用工作队列系统 129
11.1.1 源容器接口 130
11.1.2 工作队列API 131
11.1.3 工作单元容器接口 132
11.1.4 共享的工作队列架构 134
11.2 实战演练:实现视频缩略图生成器 136
11.3 工作单元的动态扩缩容 138
11.4 多工作单元模式 139
11.5 小结 140
第12 章 事件驱动批处理 . 141
12.1 事件驱动处理模式 142
12.1.1 复制器 .142
12.1.2 过滤器 .143
12.1.3 分流器 .144
12.1.4 分片器 .145
12.1.5 合并器 .147
12.2 实战演练:构建新用户注册事件的驱动工作流 148
12.3 发布者/ 订阅者基础架构 150
12.4 实战演练:部署Kafka .151
12.5 工作队列的弹性和性能 153
12.5.1 工作窃取 153
12.5.2 错误、优先级和重试 154
12.6 小结 156
第13 章 协调式批处理 . 157
13.1 连接(或栏栅同步) .157
13.2 Reduce 159
13.2.1 实战演练:计数 .160
13.2.2 求和 161
13.2.3 直方图 .162
13.2.4 实战演练:图像标记与处理流水线 .163
13.3 小结 166
第五部分 通用概念
第14 章 监控与可观测性模式 169
14.1 监控与可观测性基础 .169
14.1.1 日志记录 170
14.1.2 指标 172
14.1.3 基础请求监控 174
14.1.4 高级请求监控 175
14.1.5 告警 176
14.1.6 追踪 177
14.2 信息聚合 178
14.3 小结 179
第15 章 AI 推理与服务 181
15.1 AI 系统基础 181
15.2 模型部署 182
15.3 模型分发 183
15.4 模型开发实践 184
15.5 检索增强生成 185
15.6 测试与部署 .186
15.7 小结 187
第16 章 常见故障模式 . 189
16.1 惊群效应 189
16.2 无错误即异常 190
16.3 “客户端”与“预期”错误 191
16.4 版本控制错误 191
16.5 可选组件的迷思 192
16.6 糟糕,我们“清理”了所有数据 193
16.7 输入广度带来的挑战 .195
16.8 处理过时工作 196
16.9 “第二系统”问题 198
16.10 小结 .200
结语:新的起点 201
| 基本信息 | |
|---|---|
| 出版社 | 中国电力出版社 |
| ISBN | 9787523907412 |
| 条码 | 9787523907412 |
| 编者 | [美]布伦丹·伯恩斯(Brendan Burns) 著 |
| 译者 | |
| 出版年月 | 2026-01-01 00:00:00.0 |
| 开本 | 16开 |
| 装帧 | 平装 |
| 页数 | 202 |
| 字数 | 216000 |
| 版次 | 1 |
| 印次 | 1 |
| 纸张 | |
暂无商品评论信息 [发表商品评论]
暂无商品咨询信息 [发表商品咨询]