课程简介
学习本课程,学员将会对微服务、Spring Boot、Spring Cloud有一个比较系统、全面的认识。通过学习,学员将能掌握相关的知识体系,并能够投入到项目实战中去。
本课程采用实战优先的原则,讲解如何从0开始编写基于Spring Boot/Cloud开发的微服务,并逐步解决项目中的问题,最终实现一个高可用的微服务架构。然后,讲解如何将应用容器化,并部署到Docker。同时,在授课过程中会穿插实际项目中的例子,并总结实际项目中的最佳实践。
本课程使用Spring Boot2.0 + Spring Cloud Finchley SR1进行讲解,各种新特性一览无余!
需要安装:
1. JDK1.8
2. Maven
3. IntelliJ IDEA(或Spring Tool Suite,不建议原生Eclipse)
4. Docker 17.12
目标收益
使学员理解微服务是什么、有什么好处、设计原则、拆分原则
能够使用Spring Cloud开发微服务
深入理解Spring Cloud核心组件,理解组件之间协作关系,并且知晓其原理,做到之所以然,并知其所以然
深入理解Spring Cloud常用扩展钩子,具备二次开发Spring Cloud的能力
培训对象
对微服务、Spring Cloud感兴趣的架构师、Java开发人员
课程大纲
前置知识预热 |
从Spring讲起… Spring MVC应学应会 Spring Data JPA应学应会 Maven应学应会 |
微服务架构及概述 |
架构的演进史 微服务诞生背景 微服务架构的优点与挑战 微服务的设计原则 如何拆分微服务 |
Spring Boot概述 |
Spring Boot简介、诞生背景、特点 使用SpringInitialzr快速创建应用 编写第一个SpringBoot应用 Spring Boot配置方式、profile、健康检查 |
Spring Cloud概述 |
Spring Cloud简介、核心功能、特点 Spring Cloud版本简介及与Spring Boot的兼容性 Spring Cloud子项目与提供的能力 服务提供者与服务消费者 |
服务注册与服务发现-Eureka |
服务注册与服务发现作用与原理剖析 服务发现组件对比与选择 Eureka简介与架构剖析 编写Eureka Server 高可用Eureka 用户认证 元数据【重要的扩展钩子】 RESTful API【重要的能力钩子】 自我保护模式【重要特性】 指定网卡 健康检查【作用、存在的坑以及总结】 |
客户端侧负载均衡-Ribbon |
负载均衡原理剖析 负载均衡组件对比与选择 Ribbon简介 原生Ribbon API 引入Ribbon后的架构演进 编写第一个Ribbon Client 使用代码自定义Ribbon的配置 使用配置自定义Ribbon的配置 Eager Load |
声明式的HTTP客户端-Feign |
Feign简介 Feign上手 使用代码自定义Feign的配置 使用配置自定义Feign的配置 继承特性 压缩 日志 构造多参数请求 Feign常见问题总结 Feign性能调优 Feign vs RestTemplate |
断路器-Hystrix |
为什么要实现微服务容错? 容错的思路和办法有哪些? 容错组件对比与选择 Hystrix简介 整合Hystrix Hystrix配置详解 Feign使用Hystrix 使用FallbackFactory检查回退原因 Feign启用/禁用Hystrix Hystrix监控 Hystrix Dashboard可视化监控数据 Turbine简介 编写Turbine Server 消息中间件模式 |
API Gateway-Zuul |
网关的必要性 简介 入门示例:编写一个API Gateway /routes端点 路由配置详解 /filters端点 Zuul的安全与Header传递 文件上传 过滤器详解 容错与回退 高可用Zuul 整合异构平台-Sidecar Debug Zuul |
配置中心-SpringCloud Config |
为什么要使用配置中心 配置中心对比与选择 Spring Cloud Config简介 编写ConfigServer 集成ConfigClient Git仓库配置详解 配置属性加解密 配置手动刷新 自动刷新-SpringCloud Bus Config Server与Eureka配合使用 安全 高可用 |
调用链监控-SpringCloud Sleuth |
为什么要实现调用链跟踪 调用链工具对比与选择 Sleuth简介 基本概念 入门示例:整合Sleuth Sleuth配合ELK Zipkin简介 Zipkin Server编写 Zipkin UI 微服务整合Zipkin 消息中间件模式整合Zipkin 使用Elasticsearch作为Zipkin Server的后端存储 生成依赖关系图 |
微服务安全 |
微服务安全的原则 Spring Cloud Security方案 Zuul上统一控制方案 Session共享方案 外部无状态,内部有状态方案 我司方案 |
快速落地 |
输入面向生产的脚手架,包含了: 基于Spring Cloud的快速开发脚手架 多维度微服务监控能力 |
前置知识预热 从Spring讲起… Spring MVC应学应会 Spring Data JPA应学应会 Maven应学应会 |
微服务架构及概述 架构的演进史 微服务诞生背景 微服务架构的优点与挑战 微服务的设计原则 如何拆分微服务 |
Spring Boot概述 Spring Boot简介、诞生背景、特点 使用SpringInitialzr快速创建应用 编写第一个SpringBoot应用 Spring Boot配置方式、profile、健康检查 |
Spring Cloud概述 Spring Cloud简介、核心功能、特点 Spring Cloud版本简介及与Spring Boot的兼容性 Spring Cloud子项目与提供的能力 服务提供者与服务消费者 |
服务注册与服务发现-Eureka 服务注册与服务发现作用与原理剖析 服务发现组件对比与选择 Eureka简介与架构剖析 编写Eureka Server 高可用Eureka 用户认证 元数据【重要的扩展钩子】 RESTful API【重要的能力钩子】 自我保护模式【重要特性】 指定网卡 健康检查【作用、存在的坑以及总结】 |
客户端侧负载均衡-Ribbon 负载均衡原理剖析 负载均衡组件对比与选择 Ribbon简介 原生Ribbon API 引入Ribbon后的架构演进 编写第一个Ribbon Client 使用代码自定义Ribbon的配置 使用配置自定义Ribbon的配置 Eager Load |
声明式的HTTP客户端-Feign Feign简介 Feign上手 使用代码自定义Feign的配置 使用配置自定义Feign的配置 继承特性 压缩 日志 构造多参数请求 Feign常见问题总结 Feign性能调优 Feign vs RestTemplate |
断路器-Hystrix 为什么要实现微服务容错? 容错的思路和办法有哪些? 容错组件对比与选择 Hystrix简介 整合Hystrix Hystrix配置详解 Feign使用Hystrix 使用FallbackFactory检查回退原因 Feign启用/禁用Hystrix Hystrix监控 Hystrix Dashboard可视化监控数据 Turbine简介 编写Turbine Server 消息中间件模式 |
API Gateway-Zuul 网关的必要性 简介 入门示例:编写一个API Gateway /routes端点 路由配置详解 /filters端点 Zuul的安全与Header传递 文件上传 过滤器详解 容错与回退 高可用Zuul 整合异构平台-Sidecar Debug Zuul |
配置中心-SpringCloud Config 为什么要使用配置中心 配置中心对比与选择 Spring Cloud Config简介 编写ConfigServer 集成ConfigClient Git仓库配置详解 配置属性加解密 配置手动刷新 自动刷新-SpringCloud Bus Config Server与Eureka配合使用 安全 高可用 |
调用链监控-SpringCloud Sleuth 为什么要实现调用链跟踪 调用链工具对比与选择 Sleuth简介 基本概念 入门示例:整合Sleuth Sleuth配合ELK Zipkin简介 Zipkin Server编写 Zipkin UI 微服务整合Zipkin 消息中间件模式整合Zipkin 使用Elasticsearch作为Zipkin Server的后端存储 生成依赖关系图 |
微服务安全 微服务安全的原则 Spring Cloud Security方案 Zuul上统一控制方案 Session共享方案 外部无状态,内部有状态方案 我司方案 |
快速落地 输入面向生产的脚手架,包含了: 基于Spring Cloud的快速开发脚手架 多维度微服务监控能力 |