Spring Cloud / Alibaba 微服务架构实战
没有实战过微服务架构的人,不能说真懂微服务。因为除了技术的实现,这其中还涉及了难以量化的业务拆分和组件化思想。这门课就带大家以电商工程为例,基于Spring Cloud / SpringCloud Alibaba ,融合常用组件/中间件,进行微服务架构设计和开发,获取真正的企业级微服务解决方案。
-
第1章 课程介绍 试看4 节 | 7分钟
本章中,将会对课程的内容做介绍说明,总览课程中涉及到的知识点和学习方向。
- 视频:1-1 关于课程你需要了解的 (06:02)试看
- 图文:1-2 【准备工作】安装IDEA插件
- 图文:1-3 课程知识点脑图
- 图文:1-4 【高手进阶】对微服务架构得一些思考
-
第2章 理解微服务架构,清楚微服务设计原则3 节 | 20分钟
微服务在工程应用领域不是一开始就出现的,本章将带你领略工程架构的升级、改造历史;同时,对于微服务架构的工程来说,也需要学习、掌握其必须遵循的设计原则。
- 视频:2-1 微服务架构的演进过程 (11:25)
- 视频:2-2 微服务架构需要遵循的原则 (08:22)
- 作业:2-3 章节思考题
-
第3章 设计电商工程,把握全局视角6 节 | 58分钟
课程以电商工程为例落地微服务解决方案,本章将会使用 DDD 的思想对电商工程的业务、拆分方案进行解释说明;同时,会进入到编码阶段,搭建电商工程、实践通用工具与通用配置两大基础模块。
- 视频:3-1 认识领域驱动设计 DDD (06:53)
- 视频:3-2 电商工程业务解读及微服务模块拆分 (08:03)
- 视频:3-3 电商工程的第一行代码 (12:37)
- 视频:3-4 工程通用与配置两大基础模块(上) (15:44)
- 视频:3-5 工程通用与配置两大基础模块(下) (14:33)试看
- 作业:3-6 章节思考题
-
第4章 Alibaba Nacos:服务注册与配置中心5 节 | 57分钟
我们将会使用 Alibaba Nacos 来作为服务治理的工具,实现服务注册与服务发现;同时,应用 Nacos 的配置管理功能实践动态配置解决方案。
- 视频:4-1 部署 Alibaba Nacos 单机版本 (23:22)
- 视频:4-2 集群化部署 Alibaba Nacos (09:40)
- 视频:4-3 Alibaba Nacos Client 服务注册与发现 (23:58)
- 图文:4-4 【查缺补漏】Nacos 的配置与安装
- 作业:4-5 章节思考题
-
第5章 SpringBoot Admin 微服务应用监控4 节 | 56分钟
应用监控是一个完备的系统所不可或缺的工具,本章将会带你使用 SpringBoot Admin 搭建监控模块,并辅以安全访问控制保证服务模块的可控性。
- 视频:5-1 搭建 SpringBoot Admin 监控服务器 (21:35)
- 视频:5-2 监控中心服务器添加安全访问控制 (17:46)
- 视频:5-3 SpringBoot Admin 应用监控总结 (16:31)
- 作业:5-4 章节思考题
-
第6章 授权、鉴权中心微服务10 节 | 144分钟
授权、鉴权即实现对用户的身份校验,是任何一个工程的基础服务。本章将会使用 JWT + RSA256 实现工程的授权、鉴权,也是我们电商工程的第一个微服务。
- 视频:6-1 授权、鉴权中心微服务功能设计 (11:31)
- 视频:6-2 搭建授权、鉴权中心微服务 (09:45)
- 视频:6-3 数据表及 ORM 过程 (25:08)
- 视频:6-4 生成 RSA256 公钥和私钥对 (20:55)
- 视频:6-5 基于 JWT + RSA256 的授权(1) (21:22)
- 视频:6-6 基于 JWT + RSA256 的授权(2) (09:01)
- 视频:6-7 基于 JWT + RSA256 的鉴权 (11:53)
- 视频:6-8 验证服务可用性 (13:36)
- 视频:6-9 授权、鉴权中心微服务总结 (20:49)
- 作业:6-10 章节思考题
-
第7章 SpringCloud Gateway 微服务网关16 节 | 211分钟
Gateway 是 SpringCloud 框架的第二代网关,也是目前网关实现上的事实标准。这一章我会解析 Gateway 的组成,包含路由、断言及过滤器。同时,在 Gateway 中向授权、鉴权微服务请求转发,实现登录和注册功能。另外,我们使用 Nacos 的配置管理功能实现了动态路由配置。…
- 视频:7-1 第二代微服务网关组件 SpringCloud Gateway (07:25)
- 视频:7-2 谓词 Predicate 的原理与应用(上) (15:26)
- 视频:7-3 谓词 Predicate 的原理与应用(下) (13:22)
- 视频:7-4 集成 Alibaba Nacos 实现动态路由配置 (17:32)
- 视频:7-5 注册网关事件监听器(上) (22:16)
- 视频:7-6 注册网关事件监听器(下) (18:17)
- 视频:7-7 验证网关事件监听器的可用性 (08:09)
- 视频:7-8 解读 SpringCloud Gateway Filter (14:51)
- 视频:7-9 局部过滤器 – 校验 Header 中的 Token (08:06)
- 视频:7-10 缓存 HTTP 请求 Body 的全局过滤器 (17:40)
- 视频:7-11 登录、注册、鉴权全局过滤器(上) (14:38)试看
- 视频:7-12 登录、注册、鉴权全局过滤器(下) (13:54)
- 视频:7-13 代码与文件两种方式配置网关路由 (13:20)
- 视频:7-14 验证网关微服务功能可用性 (16:04)
- 视频:7-15 SpringCloud Gateway 微服务入口网关总结 (09:42)
- 作业:7-16 章节思考题
-
第8章 SpringCloud Sleuth + Zipkin:分布式日志追踪9 节 | 79分钟
微服务架构下的工程不可避免的会存在微服务通信,即微服务之间存在功能依赖,那么,就需要有工具或组件实现分布式链路、日志追踪。SpringCloud Sleuth 通过 Span 和 Trace 实现了链路追踪,Zipkin 则能够收集并图形化展示这些链路数据。…
- 视频:8-1 SpringCloud Sleuth + Zipkin 概览 (10:52)
- 视频:8-2 集成 SpringCloud Sleuth 实现微服务通信跟踪 (18:26)
- 视频:8-3 搭建 Zipkin Server 实现对跟踪信息的收集 (14:36)
- 视频:8-4 SpringCloud Sleuth 整合 Zipkin 实现分布式链路跟踪、收集 (13:25)
- 视频:8-5 SpringCloud Sleuth 设置采样率、抽样收集策略 (10:48)
- 视频:8-6 SpringCloud Sleuth + Zipkin 分布式日志追踪总结 (10:13)
- 图文:8-7 Kafka 的安装与运行
- 图文:8-8 Zipkin 的安装与配置
- 作业:8-9 章节思考题
-
第9章 用户账户微服务16 节 | 238分钟
用户账户是我们要实现的第一个功能微服务,在此之前我们还需要做一些准备工作:用户身份统一拦截获取请求用户信息、引入 Swagger 生成工程文档。之后,实现用户地址和用户余额两大核心功能,并完成微服务功能可用性测试。…
- 视频:9-1 用户身份登录统一拦截 (25:42)
- 视频:9-2 集成 Swagger2 实现代码即文档(上) (11:07)
- 视频:9-3 集成 Swagger2 实现代码即文档(下) (10:19)
- 视频:9-4 用户账户微服务功能设计 (12:18)
- 视频:9-5 数据表及 ORM 过程(1) (33:50)
- 视频:9-6 数据表及 ORM 过程(2) (16:42)
- 视频:9-7 用户地址与余额服务接口定义 (13:26)
- 视频:9-8 用户地址相关服务接口实现 (20:42)
- 视频:9-9 用户地址服务接口可用性测试(测试用例) (19:19)
- 视频:9-10 用户余额相关服务接口实现 (11:41)
- 视频:9-11 用户余额服务接口可用性测试(测试用例) (10:09)
- 视频:9-12 用户账户微服务对外 HTTP 接口 (17:15)
- 视频:9-13 验证用户账户微服务功能可用性(上) (14:11)
- 视频:9-14 验证用户账户微服务功能可用性(下) (10:51)
- 视频:9-15 用户账户微服务总结 (10:13)
- 作业:9-16 章节思考题
-
第10章 商品微服务19 节 | 276分钟
商品微服务提供两大核心功能:异步入库商品信息与商品信息查询。为了对异步任务进行监控管理,我们需要实现监控切面与代理执行管理器;商品信息查询是非常频繁的操作,我们使用 Redis 缓存数据,提高工程的并发性能。
- 视频:10-1 商品微服务功能设计 (15:46)
- 视频:10-2 商品属性枚举类及转换器定义(上) (14:33)
- 视频:10-3 商品属性枚举类及转换器定义(下) (08:29)
- 视频:10-4 数据表及 ORM 过程 (20:17)
- 视频:10-5 商品信息对象定义及转换方法 (21:40)
- 视频:10-6 异步任务与商品服务接口定义 (14:16)
- 视频:10-7 异步入库商品服务功能实现 (35:45)
- 视频:10-8 异步任务执行管理器 (15:05)
- 视频:10-9 异步任务执行监控切面 (13:03)
- 视频:10-10 商品相关服务接口实现(上) (14:26)
- 视频:10-11 商品相关服务接口实现(中) (13:35)
- 视频:10-12 商品相关服务接口实现(下) (13:03)
- 视频:10-13 异步入库商品功能可用性验证 (19:33)
- 视频:10-14 商品服务接口可用性测试 (15:23)
- 视频:10-15 商品微服务对外 HTTP 接口 (09:23)
- 视频:10-16 验证商品微服务功能可用性 (25:39)
- 视频:10-17 商品微服务总结 (06:01)
- 图文:10-18 【查缺补漏】Redis的安装
- 作业:10-19 章节思考题
-
第11章 微服务通信 Ribbon + OpenFeign8 节 | 122分钟
微服务架构下的工程存在多个独立部署的微服务,这些微服务之间不可避免的会存在功能依赖,所以,我们需要学习微服务间的通信机制。企业级中最流行的通信方案是 OpenFeign,它是基于 Ribbon 实现的,且最底层都是依赖 RestTemplate,我会在这一章讲解它们的前世今生。…
- 视频:11-1 微服务通信方案解读 (07:37)
- 视频:11-2 使用 RestTemplate 实现微服务通信 (25:36)
- 视频:11-3 Ribbon 实现微服务通信及其原理解读 (28:01)
- 视频:11-4 小试牛刀,SpringCloud OpenFeign 的简单应用 (13:45)
- 视频:11-5 配置 SpringCloud OpenFeign,让它更好用 (19:36)
- 视频:11-6 通过 Feign 的原生 API 解析其实现原理 (20:11)
- 视频:11-7 微服务通信总结 (06:48)
- 作业:11-8 章节思考题
-
第12章 SpringCloud Netflix Hystrix 实现微服务容错18 节 | 238分钟
微服务之间存在依赖,那么就一定要考虑下游服务的可用性,即要做好熔断、降级和隔离。Hystrix 是目前企业级中应用最为广泛的组件,我除了会讲解基本的容错功能之外,还会引入请求缓存、请求合并等高级特性。
- 视频:12-1 SpringCloud Netflix Hystrix 概览 (07:01)
- 视频:12-2 使用注解方式实现服务的容错、降级(上) (11:20)
- 视频:12-3 使用注解方式实现服务的容错、降级(下) (13:55)
- 视频:12-4 使用编程方式实现服务的容错、降级(上) (19:02)
- 视频:12-5 使用编程方式实现服务的容错、降级(中) (13:18)
- 视频:12-6 使用编程方式实现服务的容错、降级(下) (23:31)
- 视频:12-7 编程方式开启 Hystrix 请求缓存(上) (17:20)
- 视频:12-8 编程方式开启 Hystrix 请求缓存(下) (17:23)
- 视频:12-9 注解方式开启 Hystrix 请求缓存 (23:25)
- 视频:12-10 编程方式应用 Hystrix 请求合并(上) (14:06)
- 视频:12-11 编程方式应用 Hystrix 请求合并(下) (16:47)
- 视频:12-12 注解方式应用 Hystrix 请求合并 (12:33)
- 视频:12-13 OpenFeign 集成 Hystrix 开启后备模式(1) (09:23)
- 视频:12-14 OpenFeign 集成 Hystrix 开启后备模式(2) (07:14)
- 视频:12-15 使用 Hystrix 监控面板监测客户端容错(上) (09:32)
- 视频:12-16 使用 Hystrix 监控面板监测客户端容错(下) (14:22)
- 视频:12-17 SpringCloud Netflix Hystrix 容错组件总结 (07:15)
- 图文:12-18 章节思考题
-
第13章 基于 SpringCloud Stream 构建消息驱动微服务14 节 | 171分钟
消息队列是构建消息驱动服务的基础,不过,不同的团队、项目可能偏好于不同的消息中间件,例如 Kafka、RocketMQ 等等。那么,为了屏蔽这些中间件的底层细节,Stream 组件使用统一的 API 与它们进行交互,实现了一套代码可以应用于多种消息中间件的能力。…
- 视频:13-1 SpringBoot 集成 Kafka 构建消息驱动微服务(上) (15:12)
- 视频:13-2 SpringBoot 集成 Kafka 构建消息驱动微服务(中) (10:46)
- 视频:13-3 SpringBoot 集成 Kafka 构建消息驱动微服务(下) (17:55)
- 视频:13-4 SpringBoot 集成 RocketMQ 构建消息驱动微服务(1) (15:50)
- 视频:13-5 SpringBoot 集成 RocketMQ 构建消息驱动微服务(2) (07:42)
- 视频:13-6 SpringBoot 集成 RocketMQ 构建消息驱动微服务(3) (14:36)
- 视频:13-7 SpringBoot 集成 RocketMQ 构建消息驱动微服务(4) (13:58)
- 视频:13-8 SpringCloud Stream 消息驱动组件概览 (04:53)
- 视频:13-9 基于 SpringCloud Stream 消息驱动的简单应用 (23:03)
- 视频:13-10 自定义 Stream 消息通信信道实现定制分发 (21:31)
- 视频:13-11 SpringCloud Stream 消息分组和消费分区的配置与说明 (19:05)
- 视频:13-12 SpringCloud Stream 消息驱动组件总结 (06:14)
- 图文:13-13 【查缺补漏】RocketMQ的安装
- 作业:13-14 章节思考题
-
第14章 Seata:分布式事务解决方案12 节 | 125分钟
微服务工程不可避免的会存在多个本地事务结合在一起的场景,要让这些本地事务同时提交、同时回滚,就变成了分布式事务。Alibaba Seata 是目前企业级中最流行、应用最广泛的分布式事务解决方案,我们的课程中也将会引入 Seata 来解决分布式事务问题。…
- 视频:14-1 Spring 声明式事务 @Transactional 注解解读 (10:07)
- 视频:14-2 Spring 事务 @Transactioal 注解的应用 (20:52)
- 视频:14-3 @Transactioal 注解失效的场景(上) (14:01)
- 视频:14-4 @Transactioal 注解失效的场景(下) (08:14)
- 视频:14-5 分布式事务理论及解决方案概览 (07:43)
- 视频:14-6 分布式事务解决方案 Seata AT 模式解读 (10:41)
- 视频:14-7 Seata Server 单机与高可用模式搭建 (22:21)
- 视频:14-8 Seata AT 模式的应用 (12:26)
- 视频:14-9 解读 Seata AT 模式的实现原理 (08:28)
- 视频:14-10 分布式事务及解决方案 Seata 总结 (09:55)
- 图文:14-11 【查缺补漏】Seata的安装
- 作业:14-12 章节思考题
-
第15章 订单微服务13 节 | 177分钟
订单微服务是电商工程的核心微服务,这其中会引入微服务通信、微服务容错、消息驱动与分布式事务,它会将电商工程中所有的微服务都串联在一起,共同完成用户的下单操作。所以,在实现这个微服务时,要认真考虑这里面要解决的问题,以及使用到的技术、工具和组件。…
- 视频:15-1 订单微服务功能设计 (12:29)
- 视频:15-2 数据表及 ORM 过程 (14:28)
- 视频:15-3 订单相关服务接口定义 (15:50)
- 视频:15-4 远程服务调用 Feign 接口定义及配置(1) (18:12)
- 视频:15-5 远程服务调用 Feign 接口定义及配置(2) (11:01)
- 视频:15-6 Seata 代理数据源及其配置 (19:03)
- 视频:15-7 自定义通信信道及物流信息对象编写 (06:50)
- 视频:15-8 涉及分布式事务的创建订单接口实现 (23:33)
- 视频:15-9 分页用户订单详情接口实现 (22:07)
- 视频:15-10 订单微服务对外 HTTP 接口 (06:05)
- 视频:15-11 验证订单微服务功能可用性 (20:53)
- 视频:15-12 订单微服务总结 (06:18)
- 作业:15-13 章节思考题
-
第16章 物流微服务5 节 | 31分钟
物流微服务是订单微服务的下游服务,它们之间通过 Stream 结合消息中间件的模式构建了通信通道。创建订单完毕之后,由物流微服务异步生成物流单,并可以在此基础上做更多的扩展,例如:推送消息、构造物流清单等等。
- 视频:16-1 物流微服务功能设计 (09:26)
- 视频:16-2 数据表及 ORM 过程 (09:34)
- 视频:16-3 物流相关服务接口定义及实现 (08:25)
- 视频:16-4 物流微服务总结 (03:23)
- 作业:16-5 章节思考题
-
第17章 基于 SpringCloud Alibaba Sentinel 实现网关动态限流15 节 | 206分钟
支持高并发的系统一定要做好限流的工作,微服务架构下,当然是把限流的功能提前到网关层面,Alibaba Sentinel 目前被广泛的应用在服务限流的实现上,我同时会将 Gateway、Sentinel、Nacos 结合在一起,实现网关动态限流。
- 视频:17-1 SpringCloud Alibaba Sentinel 概览及控制台搭建 (10:22)
- 视频:17-2 基于硬编码应用 Sentinel 的限流功能(1) (16:33)
- 视频:17-3 基于硬编码应用 Sentinel 的限流功能(2) (13:33)
- 视频:17-4 基于 Sentinel Dashboard 配置工程流控规则 (10:34)
- 视频:17-5 Sentinel 对服务调用的保护 – RestTemplate 篇 (26:56)
- 视频:17-6 通过 Sentinel 实现对请求的熔断降级 (15:51)
- 视频:17-7 Sentinel 对 OpenFeign 熔断降级的支持 (11:24)
- 视频:17-8 Sentinel 结合 Nacos 实现动态限流及限流规则持久化 (14:45)
- 视频:17-9 Gateway 集成 Sentinel 实现网关限流之硬编码篇(1) (23:03)
- 视频:17-10 Gateway 集成 Sentinel 实现网关限流之硬编码篇(2) (07:40)
- 视频:17-11 Gateway 集成 Sentinel 实现网关限流之硬编码篇(3) (15:09)
- 视频:17-12 Gateway 集成 Sentinel 实现网关限流之本地文件篇 (15:16)
- 视频:17-13 Gateway 集成 Sentinel 实现网关限流之 Nacos 篇 (11:49)
- 视频:17-14 SpringCloud Alibaba Sentinel 实现网关动态限流总结 (12:59)
- 作业:17-15 章节思考题
-
第18章 微服务工程部署与整体可用性验证6 节 | 59分钟
工程代码编写完毕之后,就需要考虑工程部署的问题了,课程中会提供部署脚本实现自动化部署和管理,并解释说明工程部署的方案与目的。最后,对完成部署的微服务工程做整体的可用性验证,测试其功能正确、可用。
- 视频:18-1 电商工程配置与微服务启动前置依赖 (11:14)
- 视频:18-2 SpringBoot 工程自动化运维脚本 (13:49)
- 视频:18-3 Nginx 转发规则与 Host 配置 (15:17)
- 视频:18-4 对外服务接口 HTTP 脚本编写.mp4 (11:44)
- 视频:18-5 工程部署与可用性验证总结 (05:58)
- 作业:18-6 章节思考题
-
第19章 课程总结2 节 | 7分钟
这一章我将会梳理课程的所有知识点,对 SpringCloud 和 SpringCloud Alibaba 做总结说明。同时,再去铺开微服务工程的几类问题,并说明这些问题的解决方案、解决思想。
- 视频:19-1 课程总结 (06:47)
- 图文:19-2 【高手进阶】对于电商工程,我们可以考虑哪些扩展
梦想思维优质互联网资源分享平台 » Spring Cloud / Alibaba 微服务架构实战