Spring Cloud Alibaba大型微服务架构项目实战(上册)
定 价:109 元
- 作者:十三
- 出版时间:2024/1/1
- ISBN:9787121468728
- 出 版 社:电子工业出版社
- 中图法分类:TP368.5
- 页码:452
- 纸张:
- 版次:01
- 开本:16开
本书由基础知识讲起,包括微服务架构介绍、技术选型介绍、基础环境搭建。目的是帮助读者熟悉微服务架构和 Spring Cloud 技术栈的前置知识,可以顺利的过渡到项目实战阶段。之后,会讲解微服务架构中的各种组件的整合与使用。这部分内容主要包括微服务架构中各组件的介绍与应用实操。内容涵盖服务注册与发现、服务管理、服务通信、负载均衡器、网关、服务容错、链路追踪、分布式事务等知识点,包括相关组件的搭建和整合,有搭建过程讲解,也有整合到代码中的编码实践。当然,笔者不会仅仅只介绍这些组件的搭建,包括这些组件的高可用保障、集群搭建和部署架构也都会单独讲解。最后,本书的后半部分将会结合实战项目,对一个大型的商城项目进行拆解和微服务化,并从零到一落地一个功能完整、流程完善的微服务项目。由浅入深,逐一击破微服务架构项目中的难点,让各位读者能够实际地体验到微服务架构项目的搭建和开发。在实战中,让各位读者深入理解微服务技术,掌握微服务项目开发的核心知识点。通过本书的讲解和提供的完整代码,让读者掌握Spring Cloud Alibaba技术栈中的组件、知识点,并且能够应用到自己所开发的项目中。
韩帅,笔名十三,企业技术主管、CSDN博客专家、视频讲师。毕业于安徽省巢湖学院,具有多年一线开发经验,历任高级开发工程师、产品线后端负责人、技术部门主管等职位。熟练使用Java、SQL、Spring Boot、Vue等计算机语言和开发框架,有非常丰富的开发经验,同时也是开源项目的爱好者和贡献者。
第1章 千里之行:微服务架构学习路径与建议 1
1.1 微服务架构的学习路径 1
1.1.1 上手微服务架构项目会遇到哪些问题 2
1.1.2 梳理微服务架构 3
1.1.3 拆解微服务架构搭建的步骤 4
1.1.4 搭建并整合各个微服务组件 6
1.1.5 从零到一开发大型的微服务架构项目 6
1.2 章节规划 8
1.2.1 微服务架构的基础知识 8
1.2.2 微服务架构各组件的搭建与整合 8
1.2.3 微服务架构项目实战 9
1.3 学前必备 10
1.4 学习建议 10
第2章 知己知彼:详解微服务架构的前世今生 12
2.1 什么是微服务架构 13
2.2 为什么要使用微服务架构 15
2.2.1 架构的演进 15
2.2.2 微服务架构并不是石头缝里蹦出的孙悟空 21
2.2.3 哪些原因导致系统架构往微服务架构的方向演进 22
2.3 微服务架构的优缺点 23
2.3.1 微服务架构的优点 24
2.3.2 微服务架构的缺点 26
2.4 架构的尽头是微服务吗 27
2.5 系统架构升级改造时一定会用到微服务吗 27
2.6 学习微服务架构有什么好处 29
2.7 微服务架构中的常用技术 29
第3章 八面玲珑:一站式解决方案——Spring Cloud技术栈 33
3.1 微服务架构中常用的技术及落地方案 33
3.2 Spring Cloud技术栈 35
3.3 Spring Cloud Netflix套件简介 37
3.4 Spring Cloud Alibaba套件简介 38
3.5 选择Spring Cloud Alibaba的原因 40
第4章 有备无患:项目运行所需的开发环境和基础模板代码 42
4.1 JDK的安装和配置 42
4.1.1 下载安装包 42
4.1.2 安装JDK 44
4.1.3 配置环境变量 45
4.1.4 JDK环境变量验证 46
4.2 Maven的安装和配置 47
4.2.1 下载安装包 47
4.2.2 安装并配置Maven 48
4.2.3 Maven环境变量验证 49
4.2.4 配置国内Maven镜像 49
4.3 开发工具IDEA的安装与配置 51
4.3.1 安装IDEA及其功能简介 52
4.3.2 配置IDEA的Maven环境 54
4.3.3 Lombok插件 55
4.4 Spring Boot简介 56
4.5 Spring Boot项目创建 57
4.5.1 认识Spring Initializr 57
4.5.2 使用Spring Initializr初始化一个Spring Boot项目 58
4.5.3 使用IDEA编辑器初始化Spring Boot项目 59
4.6 Spring Boot项目目录结构简介 60
4.7 启动Spring Boot项目 61
4.7.1 在IDEA编辑器中启动Spring Boot项目 61
4.7.2 Maven插件启动 63
4.7.3 java -jar命令启动 64
4.7.4 Spring Boot项目启动日志 65
4.8 开发第一个Spring Boot项目 66
4.9 构建Spring Cloud Alibaba模板项目 68
第5章 拉开帷幕:详解服务通信与服务治理 74
5.1 认识服务通信 74
5.1.1 为什么需要服务通信 74
5.1.2 服务通信简介 76
5.2 HTTP调用之编码实践 77
5.2.1 被调用端编码实现 79
5.2.2 使用HttpClient处理请求 81
5.2.3 使用RestTemplate处理请求 83
5.2.4 使用WebClient处理请求 85
5.3 为什么需要服务治理 87
5.4 服务注册和服务发现 90
5.4.1 服务注册简介 90
5.4.2 服务发现简介 91
5.5 健康检查机制 92
第6章 好戏开场:服务管理、注册中心、配置中心——Nacos 94
6.1 Nacos简介 94
6.2 Nacos下载与启动 96
6.2.1 下载Nacos 96
6.2.2 启动Nacos 97
6.3 修改Nacos持久化配置 100
6.4 Nacos整合之服务注册编码实践 104
6.4.1 编写服务代码 104
6.4.2 在配置文件中添加Nacos配置参数 107
6.4.3 服务注册功能验证 109
6.4.4 Nacos服务注册源码解析 112
6.5 Nacos整合之服务发现编码实践 119
6.5.1 编写服务消费端的代码 119
6.5.2 将服务注册至Nacos 121
6.5.3 编写服务通信代码 122
6.5.4 服务发现的源码分析 125
6.6 配置中心介绍 140
6.6.1 编码中常用的配置方式分析 140
6.6.2 为什么需要配置中心 142
6.6.3 什么是配置中心 143
6.6.4 配置中心具备哪些功能 144
6.6.5 配置中心的优点 145
6.6.6 配置中心在微服务架构中的作用 146
6.7 整合Nacos配置中心编码实践 147
6.7.1 创建基础工程 147
6.7.2 集成Nacos配置中心 151
6.7.3 Data ID详解 155
6.7.4 整合Nacos配置中心功能验证 156
6.8 集成Nacos实现配置动态刷新 158
6.8.1 实现业务开关 159
6.8.2 配置动态刷新功能的好处及应用场景 162
6.9 多配置文件读取 163
6.9.1 extension-configs配置项简介 163
6.9.2 在配置中心创建多个配置文件 164
6.9.3 在代码中增加多配置读取的配置及功能验证 165
第7章 百里挑一:Spring Cloud LoadBalancer负载均衡器 167
7.1 认识负载均衡 167
7.2 Spring Cloud LoadBalancer简介 168
7.3 负载均衡器的功能演示 169
7.4 Spring Cloud LoadBalancer自动配置源码分析 172
7.5 引入负载均衡器后发起请求的源码分析 177
7.5.1 RestTemplate中没有拦截器时是怎样工作的 177
7.5.2 被定制化后的RestTemplate对象是怎样进入拦截器逻辑的 179
7.5.3 拦截器中处理请求的流程 180
7.6 内置负载均衡器的源码分析 182
7.7 自定义负载均衡算法 184
7.8 服务通信和服务治理知识总结 187
7.9 multi-service-demo模板项目创建 189
第8章 云中锦书:OpenFeign远程调用实践 195
8.1 OpenFeign简介 195
8.2 编码集成OpenFeign 196
8.3 OpenFeign参数传递编码实践 201
8.3.1 简单类型处理 202
8.3.2 简单对象类型处理 206
8.3.3 复杂对象类型处理 209
8.3.4 通用结果类Result 214
第9章 一夫当关:微服务网关——Spring Cloud Gateway 217
9.1 微服务网关介绍 217
9.1.1 认识微服务网关 217
9.1.2 网关层的主流技术选型 219
9.1.3 选择Spring Cloud Gateway的原因 222
9.2 整合Spring Cloud Gateway编码实践 224
9.2.1 编码整合Spring Cloud Gateway 224
9.2.2 将网关服务整合到服务中心 227
9.2.3 整合Spring Cloud Gateway报错503的问题解决方法 230
9.3 微服务网关Spring Cloud Gateway之Predicate 231
9.3.1 Spring Cloud Gateway内置断言工厂 231
9.3.2 自定义断言编码实践 235
9.4 微服务网关Spring Cloud Gateway之Filter 239
9.4.1 Spring Cloud Gateway的内置过滤器 240
9.4.2 自定义网关过滤器 244
第10章 登高望远:分布式事务解决方案——Seata 251
10.1 分布式事务详解 251
10.1.1 数据库事务简介 251
10.1.2 分布式事务的问题演示编码 257
10.1.3 分布式事务问题演示 271
10.2 分布式事务解决方案概览 273
10.2.1 分布式事务产生的原因 273
10.2.2 分布式事务的解决方案 275
10.2.3 Alibaba Seata简介 277
10.3 安装Seata 278
10.3.1 下载Seata Server安装包 278
10.3.2 Seata Server的持久化配置 278
10.4 Seata Server整合Nacos服务中心 282
10.4.1 配置Nacos的连接信息 283
10.4.2 启动Seata Server 283
10.5 整合Seata解决分布式事务编码实践 285
10.5.1 创建undo_log表 285
10.5.2 整合Seata解决分布式事务 287
10.6 Seata整合后的基础检验 290
10.6.1 服务注册验证 290
10.6.2 数据源代理验证 291
10.6.3 服务实例与Seata Server的通信验证 292
10.7 Seata中间件的重要概念 293
10.8 验证分布式事务问题及日志分析 295
10.9 Seata(AT模式)分布式事务的处理流程 302
第11章 防患未然:服务容错解决方案——Sentinel 305
11.1 服务容错详解 305
11.1.1 为什么要引入服务容错组件 305
11.1.2 服务容错落地方案:流量控制与降级熔断 307
11.2 Sentinel简介及控制台安装 310
11.2.1 阿里的流量防卫兵——Sentinel 310
11.2.2 下载与启动Sentinel控制台 312
11.3 整合Sentinel客户端编码实践 314
11.4 Sentinel中的基本概念 317
11.4.1 资源 317
11.4.2 规则 318
11.5 限流策略和流控效果 319
11.5.1 限流策略之直接流控 319
11.5.2 限流策略之关联流控 321
11.5.3 限流策略之链路流控 322
11.5.4 流控效果之快速失败 323
11.5.5 流控效果之Warm Up 323
11.5.6 流控效果之排队等待 325
11.5.7 规则配置及限流效果展示 326
11.6 熔断策略配置实践 329
11.6.1 熔断策略简介 330
11.6.2 异常熔断的基础编码 331
11.6.3 熔断策略配置及效果演示 333
11.7 内外结合:降级熔断+流量控制 337
第12章 顺藤摸瓜:链路追踪解决方案——Spring Cloud Sleuth+Zipkin 339
12.1 服务链路追踪及技术选型 339
12.1.1 什么是链路追踪 339
12.1.2 Spring Cloud Sleuth简介 340
12.2 整合Spring Cloud Sleuth编码实践 342
12.2.1 基于Spring Cloud Sleuth的链路追踪实现思路 342
12.2.2 代码基础改造 343
12.2.3 整合Spring Cloud Sleuth编码 346
12.3 搭建Zipkin Server实现链路追踪的可视化管理 350
12.3.1 搭建Zipkin Server的详细过程 350
12.3.2 整合Zipkin Client编码实践 352
12.3.3 链路追踪效果演示 353
第13章 运筹帷幄:Elastic Search + Logstash + Kibana日志中心搭建 357
13.1 ELK——日志收集、分析和展示的解决方案 357
13.1.1 认识ELK 357
13.1.2 ELK的工作流程 358
13.1.3 ELK的优势 359
13.1.4 ELK增强版 359
13.2 搭建ELK日志中心详细过程 361
13.2.1 日志环境搭建准备 361
13.2.2 搭建ELK日志中心 364
13.3 Spring Boot项目将日志输出至ELK编码实践 370
13.4 Kibana配置索引模板和索引模式 373
13.4.1 配置索引模板 374
13.4.2 配置索引模式 375
13.4.3 通过Kibana查询日志 377
13.5 微服务架构项目实战将日志输出至ELK编码实践 379
13.5.1 微服务架构项目中的日志输出配置 379
13.5.2 通过Kibana查询日志 382
第14章 一战定乾坤:大型微服务架构项目设计与实战 387
14.1 微服务实战项目详解 387
14.1.1 实战项目简介 387
14.1.2 新蜂商城项目的开源历程 388
14.1.3 新蜂商城项目的功能及数据库设计 390
14.2 由单体版到微服务架构版的拆分思路 392
14.3 微服务架构实战项目源码获取和项目启动 393
14.3.1 基础环境准备及微服务组件安装和配置 394
14.3.2 下载微服务架构实战项目的项目源码 394
14.3.3 微服务架构实战项目的目录结构 395
14.3.4 启动并验证微服务实例 399
14.4 微服务架构实战项目的功能演示 408
14.4.1 商城用户的注册与登录功能演示 408
14.4.2 把商品添加至购物车的功能演示 411
14.4.3 下单流程演示 415
14.4.4 后台管理系统的部分功能演示 419
14.5 微服务架构实战项目开发过程 424
14.6 微服务架构实战项目中接口的参数处理及统一结果响应 425
14.7 微服务架构实战项目打包和部署的注意事项 427