课程简介
学习本课程,学员将会对微服务、Spring Cloud有一个系统、全面的认识。通过学习,学员将能掌握相关的知识体系,并能够投入到项目实战中去。
本课程采用实战优先的原则,讲解如何从0开始编写基于Spring Boot/Cloud开发的微服务,并逐步解决项目中的问题,最终实现一个高可用的微服务架构。
本课程使用目前最新的Spring Cloud Hoxton SR8讲解,各种新特性一览无余!
需要安装:
1.JDK 1.8
2.Maven
3.IntelliJ IDEA(或Spring Tool Suite,不建议原生Eclipse)
本套大纲列出了当前流行和未来即将流行的框架。课程实施时,二选一即可。详细咨询研究院负责人。
目标收益
使学员理解微服务是什么、有什么好处、设计原则、拆分原则
深入理解Spring Cloud核心组件及相关扩展钩子,能够使用Spring Cloud开发微服务,并具备二次开发Spring Cloud的能力
培训对象
对微服务感兴趣的技术人员
对Spring Boot感兴趣的技术人员
对Spring Cloud感兴趣的技术人员
课程大纲
微服务架构及概述 |
架构的演进史 微服务诞生背景 微服务架构的优点与挑战 微服务拆分方法论(DDD/by name./by verb.等多种方法) 评估拆分是否合理的标准 如何将遗留项目改造成微服务? |
Spring Boot必知必会 |
什么是Spring Boot 使用Spring Initialzr快速创建应用 强大的Spring Boot Actuator Spring Boot 配置管理 |
Spring Cloud是什么 |
Spring Cloud简介、核心功能、特点 Spring Cloud版本简介及与Spring Boot的兼容性 Spring Cloud子项目与提供的能力 服务提供者与服务消费者 |
服务注册与服务发现-Eureka |
服务注册与服务发现原理剖析 服务发现组件对比与选择 Eureka简介与架构剖析 编写Eureka Server 高可用Eureka 元数据 RESTful API 自我保护模式 指定网卡 健康检查 【案例】我们做了哪些扩展 【案例】如何基于Eureka Client实现异构预研/新老平台的整合 |
服务注册与服务发现-Nacos |
服务注册与服务发现作用与原理剖析 Nacos搭建与使用 将应用注册到Nacos Nacos核心概念 Nacos领域模型 Nacos元数据 搭建Nacos Server高可用集群 【案例】我们做了哪些扩展 |
客户端侧负载均衡-Ribbon |
负载均衡原理剖析 负载均衡器对比与选择 Ribbon简介 Ribbon核心组件详解 原生Ribbon API 引入Ribbon后的架构演进 编写第一个Ribbon Client Ribbon配置自定义 扩展Ribbon Eager Load |
客户端侧负载均衡-Spring Cloud LoadBalancer |
Spring Cloud LoadBalancer是什么 Spring Cloud LoadBalancer上手 Spring Cloud LoadBalancer API 扩展Spring Cloud LoadBalancer |
声明式的HTTP客户端-Feign |
Feign简介 编写第一个Feign Client Feign核心组件详解 Feign配置自定义与最佳实践总结 继承特性与最佳实践总结 压缩 日志 构造多参数请求 |
高并发容错-Hystrix |
雪崩效应是什么?有哪些思路? 常见容错思路与方案 业界常用容错组件对比与选择 Hystrix简介 Hystrix入门 Hystrix配置详解 Feign使用Hystrix 使用FallbackFactory检查回退原因 Feign启用/禁用Hystrix Hystrix监控 Hystrix Dashboard可视化监控数据 Turbine简介 编写Turbine Server 消息中间件模式 坑:【Dashboard上没有数据怎么办?Turbine版本与坑】 坑:ThreadLocal无法传递与隔离策略详解 【案例】Hystrix配置那么多,我们是怎么配置的? |
高并发容错-Sentinel |
Sentinel是什么 使用Sentinel实现容错 Sentinel Dashboard 流控规则 降级规则 热点规则 系统规则 授权规则 代码配置规则 Sentinel API SentinelResource注解详解 RestTemplate整合Sentinel Feign整合Sentinel 规则持久化 集群流控 |
API Gateway-Zuul |
API网关简介 API网关对比与选择 编写Zuul Zuul监控与调试端点 路由配置详解 文件上传 过滤器详解 容错与回退 高可用Zuul 整合异构平台-Sidecar Debug Zuul 扩展Zuul 坑的总结:【转发不正常怎么定位?安全如何管理】 【案例】Zuul实现认证与授权 【案例】Zuul实现限流与降级 |
API Gateway-Spring Cloud Gateway |
Spring Cloud Gateway是什么? Spring Cloud Gateway上手 Spring Cloud Gateway核心概念 Spring Cloud Gateway架构剖析 路由谓词工厂详解 过滤器工厂详解 全局过滤器详解 扩展Spring Cloud Gateway |
配置中心-SpringCloud Config |
为什么要使用配置中心 配置中心对比与选择 Spring Cloud Config简介 编写ConfigServer 集成ConfigClient Git仓库配置详解 配置属性加解密 配置手动刷新 自动刷新-SpringCloud Bus Config Server与Eureka配合使用 安全 高可用 坑的总结【高可用搭建那么难怎么办?配置管理没有界面怎么办?】 【案例】我们实际项目是怎么用的、配置管理的最佳实践总结 |
配置中心-Nacos |
为什么要使用配置中心 使用Nacos管理配置 如何实现配置回滚与配置刷新 引导上下文 如何实现应用配置共享 Nacos数据持久化 配置管理最佳实践 Nacos配置管理剖析 |
分布式事务-Seata |
Seata是什么 整合Seata AT模式实现事务 TCC模式实现事务 Saga模式实现事务 |
调用链监控-Spring Cloud Sleuth |
调用链跟踪的必要性 调用链跟踪原理剖析 Sleuth是什么 核心概念 入门示例:整合Sleuth Sleuth配合ELK Zipkin简介 Zipkin Server编写 Zipkin UI 微服务整合Zipkin 消息中间件模式整合Zipkin 使用Elasticsearch作为Zipkin Server的后端存储 生成依赖关系图 |
微服务安全 |
微服务安全常用方案对比与选择 无状态VS有状态 处处安全方案 外部无状态,内部有状态方案 内部裸奔方案 裸奔方案增强版 我司方案 基于Zuul实现微服务安全 基于Spring Cloud Gateway实现微服务安全 |
最佳实践总结 |
Spring Cloud最佳实践总结 性能优化的思路与实践总结 坑的总结(如何避免常见问题) 解决问题的思路总结 生产可用的快速开发平台 与遗留技术栈的共存、割接方案 |
微服务架构及概述 架构的演进史 微服务诞生背景 微服务架构的优点与挑战 微服务拆分方法论(DDD/by name./by verb.等多种方法) 评估拆分是否合理的标准 如何将遗留项目改造成微服务? |
Spring Boot必知必会 什么是Spring Boot 使用Spring Initialzr快速创建应用 强大的Spring Boot Actuator Spring Boot 配置管理 |
Spring Cloud是什么 Spring Cloud简介、核心功能、特点 Spring Cloud版本简介及与Spring Boot的兼容性 Spring Cloud子项目与提供的能力 服务提供者与服务消费者 |
服务注册与服务发现-Eureka 服务注册与服务发现原理剖析 服务发现组件对比与选择 Eureka简介与架构剖析 编写Eureka Server 高可用Eureka 元数据 RESTful API 自我保护模式 指定网卡 健康检查 【案例】我们做了哪些扩展 【案例】如何基于Eureka Client实现异构预研/新老平台的整合 |
服务注册与服务发现-Nacos 服务注册与服务发现作用与原理剖析 Nacos搭建与使用 将应用注册到Nacos Nacos核心概念 Nacos领域模型 Nacos元数据 搭建Nacos Server高可用集群 【案例】我们做了哪些扩展 |
客户端侧负载均衡-Ribbon 负载均衡原理剖析 负载均衡器对比与选择 Ribbon简介 Ribbon核心组件详解 原生Ribbon API 引入Ribbon后的架构演进 编写第一个Ribbon Client Ribbon配置自定义 扩展Ribbon Eager Load |
客户端侧负载均衡-Spring Cloud LoadBalancer Spring Cloud LoadBalancer是什么 Spring Cloud LoadBalancer上手 Spring Cloud LoadBalancer API 扩展Spring Cloud LoadBalancer |
声明式的HTTP客户端-Feign Feign简介 编写第一个Feign Client Feign核心组件详解 Feign配置自定义与最佳实践总结 继承特性与最佳实践总结 压缩 日志 构造多参数请求 |
高并发容错-Hystrix 雪崩效应是什么?有哪些思路? 常见容错思路与方案 业界常用容错组件对比与选择 Hystrix简介 Hystrix入门 Hystrix配置详解 Feign使用Hystrix 使用FallbackFactory检查回退原因 Feign启用/禁用Hystrix Hystrix监控 Hystrix Dashboard可视化监控数据 Turbine简介 编写Turbine Server 消息中间件模式 坑:【Dashboard上没有数据怎么办?Turbine版本与坑】 坑:ThreadLocal无法传递与隔离策略详解 【案例】Hystrix配置那么多,我们是怎么配置的? |
高并发容错-Sentinel Sentinel是什么 使用Sentinel实现容错 Sentinel Dashboard 流控规则 降级规则 热点规则 系统规则 授权规则 代码配置规则 Sentinel API SentinelResource注解详解 RestTemplate整合Sentinel Feign整合Sentinel 规则持久化 集群流控 |
API Gateway-Zuul API网关简介 API网关对比与选择 编写Zuul Zuul监控与调试端点 路由配置详解 文件上传 过滤器详解 容错与回退 高可用Zuul 整合异构平台-Sidecar Debug Zuul 扩展Zuul 坑的总结:【转发不正常怎么定位?安全如何管理】 【案例】Zuul实现认证与授权 【案例】Zuul实现限流与降级 |
API Gateway-Spring Cloud Gateway Spring Cloud Gateway是什么? Spring Cloud Gateway上手 Spring Cloud Gateway核心概念 Spring Cloud Gateway架构剖析 路由谓词工厂详解 过滤器工厂详解 全局过滤器详解 扩展Spring Cloud Gateway |
配置中心-SpringCloud Config 为什么要使用配置中心 配置中心对比与选择 Spring Cloud Config简介 编写ConfigServer 集成ConfigClient Git仓库配置详解 配置属性加解密 配置手动刷新 自动刷新-SpringCloud Bus Config Server与Eureka配合使用 安全 高可用 坑的总结【高可用搭建那么难怎么办?配置管理没有界面怎么办?】 【案例】我们实际项目是怎么用的、配置管理的最佳实践总结 |
配置中心-Nacos 为什么要使用配置中心 使用Nacos管理配置 如何实现配置回滚与配置刷新 引导上下文 如何实现应用配置共享 Nacos数据持久化 配置管理最佳实践 Nacos配置管理剖析 |
分布式事务-Seata Seata是什么 整合Seata AT模式实现事务 TCC模式实现事务 Saga模式实现事务 |
调用链监控-Spring Cloud Sleuth 调用链跟踪的必要性 调用链跟踪原理剖析 Sleuth是什么 核心概念 入门示例:整合Sleuth Sleuth配合ELK Zipkin简介 Zipkin Server编写 Zipkin UI 微服务整合Zipkin 消息中间件模式整合Zipkin 使用Elasticsearch作为Zipkin Server的后端存储 生成依赖关系图 |
微服务安全 微服务安全常用方案对比与选择 无状态VS有状态 处处安全方案 外部无状态,内部有状态方案 内部裸奔方案 裸奔方案增强版 我司方案 基于Zuul实现微服务安全 基于Spring Cloud Gateway实现微服务安全 |
最佳实践总结 Spring Cloud最佳实践总结 性能优化的思路与实践总结 坑的总结(如何避免常见问题) 解决问题的思路总结 生产可用的快速开发平台 与遗留技术栈的共存、割接方案 |