微服务设计

2020-07-17 0 75

资源名称:微服务设计


图书简介:

本书全面介绍了微服务的建模、集成、测试、部署和监控,通过一个虚构的公司讲解了如何建立微服务架构。主要内容包括认识微服务在保证系统设计与组织目标统一上的重要性,学会把服务集成到已有系统中,采用递增手段拆分单块大型应用,通过持续集成部署微服务,等等。

资源截图:

微服务设计

图书目录:

前言 xiv

第1 章 微服务 1

1.1 什么是微服务 2

1.1.1 很小,专注于做好一件事 2

1.1.2 自治性 3

1.2 主要好处 3

1.2.1 技术异构性 3

1.2.2 弹性 4

1.2.3 扩展 5

1.2.4 简化部署 5

1.2.5 与组织结构相匹配 6

1.2.6 可组合性 6

1.2.7 对可替代性的优化 6

1.3 面向服务的架构 7

1.4 其他分解技术 7

1.4.1 共享库 8

1.4.2 模块 8

1.5 没有银弹 9

1.6 小结 10

第2 章 演化式架构师 11

2.1 不准确的比较 11

2.2 架构师的演化视角 12

2.3 分区 14

2.4 一个原则性的方法 15

2.4.1 战略目标 15

2.4.2 原则 15

2.4.3 实践 16

2.4.4 将原则和实践相结合 16

2.4.5 真实世界的例子 16

2.5 要求的标准 17

2.5.1 监控 18

2.5.2 接口 18

2.5.3 架构安全性 18

2.6 代码治理 18

2.6.1 范例 19

2.6.2 裁剪服务代码模板 19

2.7 技术债务 20

2.8 例外管理 21

2.9 集中治理和领导 21

2.10 建设团队 22

2.11 小结 23

第3 章 如何建模服务 24

3.1 MusicCorp 简介 24

3.2 什么样的服务是好服务 25

3.2.1 松耦合 25

3.2.2 高内聚 25

3.3 限界上下文 26

3.3.1 共享的隐藏模型 26

3.3.2 模块和服务 27

3.3.3 过早划分 28

3.4 业务功能 28

3.5 逐步划分上下文 29

3.6 关于业务概念的沟通 30

3.7 技术边界 30

3.8 小结 31

第4 章 集成 32

4.1 寻找理想的集成技术 32

4.1.1 避免破坏性修改 32

4.1.2 保证API 的技术无关性 32

4.1.3 使你的服务易于消费方使用 33

4.1.4 隐藏内部实现细节 33

4.2 为用户创建接口 33

4.3 共享数据库 33

4.4 同步与异步 35

4.5 编排与协同 35

4.6 远程过程调用 38

4.6.1 技术的耦合 38

4.6.2 本地调用和远程调用并不相同 39

4.6.3 脆弱性 39

4.6.4 RPC 很糟糕吗 40

4.7 REST 41

4.7.1 REST 和HTTP 41

4.7.2 超媒体作为程序状态的引擎 42

4.7.3 JSON、XML 还是其他 44

4.7.4 留心过多的约定 44

4.7.5 基于HTTP 的REST 的缺点 45

4.8 实现基于事件的异步协作方式 46

4.8.1 技术选择 46

4.8.2 异步架构的复杂性 47

4.9 服务即状态机 48

4.10 响应式扩展 48

4.11 微服务世界中的DRY 和代码重用的危险 49

4.12 按引用访问 50

4.13 版本管理 51

4.13.1 尽可能推迟 51

4.13.2 及早发现破坏性修改 52

4.13.3 使用语义化的版本管理 53

4.13.4 不同的接口共存 53

4.13.5 同时使用多个版本的服务 54

4.14 用户界面 55

4.14.1 走向数字化 56

4.14.2 约束 56

4.14.3 API 组合 57

4.14.4 UI 片段的组合 57

4.14.5 为前端服务的后端 59

4.14.6 一种混合方式 60

4.15 与第三方软件集成 61

4.15.1 缺乏控制 61

4.15.2 定制化 62

4.15.3 意大利面式的集成 62

4.15.4 在自己可控的平台进行定制化 62

4.15.5 绞杀者模式 64

4.16 小结 65

第5 章 分解单块系统 66

5.1 关键是接缝 66

5.2 分解MusicCorp 67

5.3 分解单块系统的原因 68

5.3.1 改变的速度 68

5.3.2 团队结构 68

5.3.3 安全 68

5.3.4 技术 68

5.4 杂乱的依赖 69

5.5 数据库 69

5.6 找到问题的关键 69

5.7 例子:打破外键关系 70

5.8 例子:共享静态数据 71

5.9 例子:共享数据 72

5.10 例子:共享表 73

5.11 重构数据库 74

5.12 事务边界 75

5.12.1 再试一次 76

5.12.2 终止整个操作 77

5.12.3 分布式事务 77

5.12.4 应该怎么办呢 78

5.13 报告 78

5.14 报告数据库 78

5.15 通过服务调用来获取数据 80

5.16 数据导出 81

5.17 事件数据导出 82

5.18 数据导出的备份 83

5.19 走向实时 84

5.20 修改的代价 84

5.21 理解根本原因 84

5.22 小结 85

第6 章 部署 86

6.1 持续集成简介 86

6.2 把持续集成映射到微服务 87

6.3 构建流水线和持续交付 90

6.4 平台特定的构建物 91

6.5 操作系统构建物 92

6.6 定制化镜像 93

6.6.1 将镜像作为构建物 94

6.6.2 不可变服务器 95

6.7 环境 95

6.8 服务配置 96

6.9 服务与主机之间的映射 97

6.9.1 单主机多服务 97

6.9.2 应用程序容器 99

6.9.3 每个主机一个服务 100

6.9.4 平台即服务 101

6.10 自动化 101

6.11 从物理机到虚拟机 102

6.11.1 传统的虚拟化技术 103

6.11.2 Vagrant 104

6.11.3 Linux 容器 104

6.11.4 Docker 106

6.12 一个部署接口 107

6.13 小结 109

第7 章 测试 110

7.1 测试类型 110

7.2 测试范围 111

7.2.1 单元测试 112

7.2.2 服务测试 113

7.2.3 端到端测试 114

7.2.4 权衡 114

7.2.5 比例 115

7.3 实现服务测试 115

7.3.1 mock 还是打桩 115

7.3.2 智能的打桩服务 116

7.4 微妙的端到端测试 117

7.5 端到端测试的缺点 118

7.6 脆弱的测试 118

7.6.1 谁来写这些测试 119

7.6.2 测试多长时间 119

7.6.3 大量的堆积 120

7.6.4 元版本 120

7.7 测试场景,而不是故事 121

7.8 拯救消费者驱动的测试 121

7.8.1 Pact 123

7.8.2 关于沟通 124

7.9 还应该使用端到端测试吗 124

7.10 部署后再测试 125

7.10.1 区分部署和上线 125

7.10.2 金丝雀发布 126

7.10.3 平均修复时间胜过平均故障间隔时间 127

7.11 跨功能的测试 128

7.12 小结 129

第8 章 监控 131

8.1 单一服务,单一服务器 132

8.2 单一服务,多个服务器 132

8.3 多个服务,多个服务器 133

8.4 日志,日志,更多的日志 134

8.5 多个服务的指标跟踪 135

8.6 服务指标 135

8.7 综合监控 136

8.8 关联标识 137

8.9 级联 139

8.10 标准化 139

8.11 考虑受众 140

8.12 未来 140

8.13 小结 141

第9 章 安全 143

9.1 身份验证和授权 143

9.1.1 常见的单点登录实现 144

9.1.2 单点登录网关 145

9.1.3 细粒度的授权 146

9.2 服务间的身份验证和授权 146

9.2.1 在边界内允许一切 146

9.2.2 HTTP(S) 基本身份验证 147

9.2.3 使用SAML 或OpenID Connect 148

9.2.4 客户端证书 148

9.2.5 HTTP 之上的HMAC 149

9.2.6 API 密钥 149

9.2.7 代理问题 150

9.3 静态数据的安全 152

9.3.1 使用众所周知的加密算法 152

9.3.2 一切皆与密钥相关 153

9.3.3 选择你的目标 153

9.3.4 按需解密 153

9.3.5 加密备份 153

9.4 深度防御 154

9.4.1 防火墙 154

9.4.2 日志 154

9.4.3 入侵检测(和预防)系统 154

9.4.4 网络隔离 155

9.4.5 操作系统 155

9.5 一个示例 156

9.6 保持节俭 158

9.7 人的因素 158

9.8 黄金法则 158

9.9 内建安全 159

9.10 外部验证 159

9.11 小结 159

第10 章 康威定律和系统设计 161

10.1 证据 161

10.1.1 松耦合组织和紧耦合组织 162

10.1.2 Windows Vista 162

10.2 Netflix 和Amazon 162

10.3 我们可以做什么 163

10.4 适应沟通途径 163

10.5 服务所有权 164

10.6 共享服务的原因 164

10.6.1 难以分割 164

10.6.2 特性团队 164

10.6.3 交付瓶颈 165

10.7 内部开源 166

10.7.1 守护者的角色 166

10.7.2 成熟 166

10.7.3 工具 167

10.8 限界上下文和团队结构 167

10.9 孤儿服务 167

10.10 案例研究:RealEstate.com.au 168

10.11 反向的康威定律 169

10.12 人 170

10.13 小结 170

第11 章 规模化微服务 171

11.1 故障无处不在 171

11.2 多少是太多 172

11.3 功能降级 173

11.4 架构性安全措施 174

11.5 反脆弱的组织 175

11.5.1 超时 176

11.5.2 断路器 176

11.5.3 舱壁 178

11.5.4 隔离 179

11.6 幂等 179

11.7 扩展 180

11.7.1 更强大的主机 181

11.7.2 拆分负载 181

11.7.3 分散风险 181

11.7.4 负载均衡 182

11.7.5 基于worker 的系统 184

11.7.6 重新设计 184

11.8 扩展数据库 185

11.8.1 服务的可用性和数据的持久性 185

11.8.2 扩展读取 185

11.8.2 扩展写操作 186

11.8.4 共享数据库基础设施 187

11.8.5 CQRS 187

11.9 缓存 188

11.9.1 客户端、 代理和服务器端缓存 188

11.9.2 HTTP 缓存 189

11.9.3 为写使用缓存 190

11.9.4 为弹性使用缓存 190

11.9.5 隐藏源服务 191

11.9.6 保持简单 191

11.9.7 缓存中毒:一个警示 192

11.10 自动伸缩 192

11.11 CAP 定理 193

11.11.1 牺牲一致性 194

11.11.2 牺牲可用性 195

11.11.3 牺牲分区容忍性 195

11.11.4 AP 还是CP 196

11.11.5 这不是全部或全不 196

11.11.6 真实世界 197

11.12 服务发现 197

11.13 动态服务注册 199

11.13.1 Zookeeper 199

11.13.2 Consul 200

11.13.4 构造你自己的系统 201

11.13.5 别忘了人 201

11.14 文档服务 201

11.14.1 Swagger 202

11.14.2 HAL 和HAL 浏览器 202

11.15 自描述系统 203

11.16 小结 203

第12 章 总结 204

12.1 微服务的原则 204

12.1.1 围绕业务概念建模 205

12.1.2 接受自动化文化 205

12.1.3 隐藏内部实现细节 205

12.1.4 让一切都去中心化 206

12.1.5 可独立部署 206

12.1.6 隔离失败 206

12.1.7 高度可观察 207

12.2 什么时候你不应该使用微服务 207

12.3 临别赠言 208

关于作者 209

关于封面 209

资源下载此资源仅限注册用户下载,请先
由于本站资源来源于互联网,以研究交流为目的,所有仅供大家参考、学习,不存在任何商业目的与商业用途,如资源存在BUG以及其他任何问题,请自行解决,本站不提供技术服务! 由于资源为虚拟可复制性,下载后不予退积分和退款,谢谢您的支持!如遇到失效或错误的下载链接请联系客服QQ:442469558

:本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可, 转载请附上原文出处链接。
1、本站提供的源码不保证资源的完整性以及安全性,不附带任何技术服务!
2、本站提供的模板、软件工具等其他资源,均不包含技术服务,请大家谅解!
3、本站提供的资源仅供下载者参考学习,请勿用于任何商业用途,请24小时内删除!
4、如需商用,请购买正版,由于未及时购买正版发生的侵权行为,与本站无关。
5、本站部分资源存放于百度网盘或其他网盘中,请提前注册好百度网盘账号,下载安装百度网盘客户端或其他网盘客户端进行下载;
6、本站部分资源文件是经压缩后的,请下载后安装解压软件,推荐使用WinRAR和7-Zip解压软件。
7、如果本站提供的资源侵犯到了您的权益,请邮件联系: 442469558@qq.com 进行处理!

猪小侠源码-最新源码下载平台 Java教程 微服务设计 https://www.20zxx.cn/74173/xuexijiaocheng/javajc.html

猪小侠源码,优质资源分享网

常见问题
  • 本站所有资源版权均属于原作者所有,均只能用于参考学习,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,建议提前注册好百度网盘账号,使用百度网盘客户端下载
查看详情

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务