欢迎访问学兔兔,学习、交流 分享 !

返回首页 |

微服务架构原理与开发实战 张刚 2021年版

收藏
  • 大小:142.35 MB
  • 语言:中文版
  • 格式: PDF文档
  • 阅读软件: Adobe Reader
资源简介
微服务架构原理与开发实战
作者: 张刚
出版时间:2021年版
内容简介
  *近几年软件开发方法层出不穷,微服务作为一种主流的架构模式一直热度不减。为了帮助广大程序员们更好更快地理解微服务的概念,学习微服务在项目中的实践,本书全面阐述了微服务架构模式的特点、架构思路、设计理念、技术框架及具体的代码实战,以软件开发过程中遇到的各种疑难问题为切入点,逐步解析微服务架构是如何设计及解决这些问题的。书中使用主流技术框架进行演示,采用通俗易懂的图例和真实的项目事例来阐述遇到问题时的解决思路和做法,并附有具体的实践演示,读者可以跟随本书进行代码试验,理解并运用微服务技术架构的理解和运用,了解微服务的适应场景和优势。本书实用性强,是目前市面上关于微服务实践方面介绍得较为全面的书籍之一,适合想要了解和学习微服务的初、高级程序员和架构师等不同水平的读者阅读。
目录
目 录
第1章 微服务概述 001
1.1 微服务的概念 002
1.2 微服务与SOA 003
1.2.1 SOA的定义 003
1.2.2 微服务与SOA的异同点 004
1.2.3 服务调用设计 005
1.3 单体式架构 007
1.3.1 单体式架构概述 007
1.3.2 单体式架构的痛点 008
1.3.3 经典的MVC架构模式 010
1.4 微服务架构概述 012
1.4.1 微服务能解决的问题 012
1.4.2 微服务架构的特点 013
1.4.3 微服务架构的优势 016
1.5 微服务的挑战 017
1.5.1 使用微服务的难点 018
1.5.2 微服务不是银弹 019
第2章 微服务架构设计 020
2.1 微服务架构的难点 021
2.2 架构设计 022
2.2.1 了解什么才是架构 022
2.2.2 软件设计的3个阶段 023
2.2.3 软件架构的目的与方法 024
2.3 微服务的核心组件 028
2.3.1 微服务的远程调用方式 028
2.3.2 HTTP 通信方法 031
2.3.3 服务的注册与发现 037
2.3.4 负载均衡 044
第3章 Spring Cloud 相关组件 050
3.1 统一配置中心 051
3.1.1 配置中心的难点 051
3.1.2 Spring Cloud Config框架 053
3.1.3 集成消息总线 058
3.2 断路器 060
3.2.1 服务熔断 060
3.2.2 服务降级 064
3.2.3 线程隔离 065
3.2.4 请求合并 068
3.2.5 请求缓存 073
3.2.6 Hystrix注解 075
3.2.7 Hystrix 控制台 078
3.3 健康监控 080
3.4 分布式链路跟踪 084
3.4.1 设计要素和术语 084
3.4.2 Spring Cloud Sleuth 链路监控 085
第4章 契约测试 088
4.1 契约测试概述 089
4.2 契约测试与TDD 091
4.2.1 TDD的定义 091
4.2.2 TDD的价值 094
4.2.3 TDD的种类 095
4.2.4 契约测试也是TDD 096
4.3 契约测试与独立交付 097
4.3.1 独立交付 097
4.3.2 集成测试 098
4.3.3 真正的独立交付 100
4.4 契约测试的相关技术与用法实战 102
4.4.1 Mock测试 102
4.4.2 消费者驱动的契约测试Pact 106
4.4.3 Spring家族契约测试Spring Cloud Contract 122
4.4.4 服务提供者的契约测试Moscow 129
第5章 API网关 133
5.1 API网关的意义 134
5.2 API网关的职责 137
5.2.1 请求路由 137
5.2.2 请求过滤 138
5.2.3 服务治理 139
5.3 API网关的缺点 141
5.4 使用API网关认证身份 141
5.4.1 分清认证与授权 141
5.4.2 API网关是否需要管理授权 142
5.4.3 传统的Cookie和Session认证 143
5.4.4 基于JSON的令牌JWT 148
5.5 API网关技术实战 151
5.5.1 Zuul 网关 151
5.5.2 Spring Cloud Gateway 159
5.5.3 Spring Security 166
5.5.4 Java-JWT 178
第6章 BFF用于前端的后端 183
6.1 回顾前后端分离发展史 184
6.1.1 日渐臃肿的前端 184
6.1.2 前端技术栈大爆发 185
6.1.3 前后端分离的必然性 185
6.1.4 分离后的挑战 186
6.2 BFF诞生 187
6.2.1 BFF的概念 187
6.2.2 BFF的适用场景 188
6.2.3 BFF模式 189
6.3 基于RESTful的BFF 190
6.4 基于GraphQL的BFF 193
6.4.1 GraphQL的概念 193
6.4.2 GraphQL在客户端的基本用法 197
6.4.3 GraphQL 与 Java集成 204
6.4.4 GraphQL与WebFlux集成 215
第7章 领域驱动设计 220
7.1 如何划分微服务 221
7.1.1 微服务的划分方式 221
7.1.2 DDD与服务划分 222
7.2 领域驱动设计概述 223
7.2.1 DDD的概念 223
7.2.2 DDD解决了什么问题 224
7.2.3 DDD适合小项目吗 226
7.2.4 为了统一语言 227
7.3 领域和子域 229
7.4 领域事件 230
7.4.1 领域事件的定义 230
7.4.2 事件风暴 230
7.4.3 用户旅程与事件风暴 232
7.5 聚合和聚合根 233
7.6 限界上下文 234
7.7 六边形架构 236
7.8 DDD的挑战 237
第8章 Docker和K8s 239
8.1 虚拟化技术 240
8.2 Docker容器化 241
8.2.1 Docker的概念 241
8.2.2 容器的概念 242
8.3 学习使用Docker 244
8.3.1 Docker的安装方法 244
8.3.2 构建Docker镜像 246
8.3.3 运行Docker容器 250
8.3.4 了解Docker的网络 252
8.3.5 日志监控的利器ELK 253
8.4 容器编排 258
8.4.1 容器为什么需要编排 258
8.4.2 Kubernetes的概念 259
8.4.3 K8s的设计理念 260
8.4.4 K8s的命名空间 264
8.4.5 K8s与Docker 265
8.4.6 K8s与Docker Swarm 266
8.5 云商的支持 267
第9章 持续集成、部署与交付 270
9.1 持续集成(CI) 271
9.1.1 传统的系统集成 271
9.1.2 持续集成的概念 273
9.1.3 微服务的CI 275
9.2 持续交付(CD) 275
9.2.1 CD的概念 276
9.2.2 DevOps与持续交付 277
9.2.3 软件质量门 277
9.3 持续部署(CD) 279
9.3.1 生产环境部署的难点 280
9.3.2 蓝绿部署 281
9.3.3 滚动部署 282
9.3.4 灰度发布 283
9.4 CI/CD工具 284
9.4.1 Jenkins 284
9.4.2 GoCD概述 291
9.4.3 DevOps概述 300
第10章 任务管理 302
10.1 任务管理概述 303
10.1.1 如何解决任务互斥 303
10.1.2 任务调度平台 304
10.2 实战演练 305
10.2.1 Quartz 306
10.2.2 XXL-JOB 310
第11章 事务管理 318
11.1 事务概述 319
11.2 CAP理论 320
11.3 BASE理论 321
11.4 解决方案 322
11.4.1 基于可靠消息的事务管理 322
11.4.2 两段提交事务 325
11.4.3 TCC模式事务管理 326
11.5 对账是后的屏障 328
第12章 传统架构的微服务转型之路 329
12.1 传统架构转型的难点 330
12.2 识别领域与界限 332
12.3 分块重构法 334
12.4 代理隔离法 336
12.5 转型不是一蹴而就的 338
下载地址