项目背景
通过微服务专业技术、微服务拆分原则以及结合我司业务系统现状及中台项目进行服务中心定义、微服务划分原则等专业培训,提升公司开发人员专业技能、系统服务复用度、服务性能以及服务稳定性。
1、微服务专业知识(注册中心、网关、熔断器、负载、事务处理、监控等);
2、保险行业微服务实施案例分析;
3、微服务拆分原则;
4、结合我司系统现状及中台项目进行服务中心梳理、服务建设规划分析
5、SpringCloud和SpringCloudAlibaba 选型及两套体系在具体项目中遇到的问题分享;
6、SpringCloudAlibaba 体系中nacos、seata、sentinel组件介绍
7、微服务架构下服务发布、服务全链路监控解决方案分享
8、网关服务鉴权解决方案分享
9、结合我司系统架构及业务场景进行针对性服务拆分及实施方案建议及沟通
课程概要
学习本课程,学员将会对微服务、Spring Cloud有一个系统、全面的认识。通过学习,学员将能掌握相关的知识体系,并能够投入到项目实战中去。
本课程采用实战优先的原则,讲解如何从0开始编写基于Spring Boot/Cloud开发的微服务,并逐步解决项目中的问题,最终实现一个高可用的微服务架构。
本课程使用目前最新的Spring Cloud Finchley SR2讲解,各种新特性一览无余!
需要安装:
JDK1.8
Maven
IntelliJ IDEA(或Spring Tool Suite,不建议原生Eclipse)
教学目标
使学员理解微服务是什么、有什么好处、设计原则、拆分原则
深入理解Spring Cloud核心组件及相关扩展钩子,能够使用Spring Cloud开发微服务,并具备二次开发Spring Cloud的能力
培训对象
对微服务感兴趣的技术人员
对Spring Boot感兴趣的技术人员
对Spring Cloud感兴趣的技术人员
学员基础
了解Java,否则动手实战会有一些困难
了解分布式应用,或对分布式架构感兴趣
熟悉Maven安排
课程大概
方向 | 内容安排 | 讲解案例 |
微服务架构及概述 | ● 架构的演进史 ● 微服务诞生背景 ● 微服务架构的优点与挑战 ● 微服务拆分方法论(DDD/by name./by verb.等多种方法) ● 评估拆分是否合理的标准 ● 如何将遗留项目改造成微服务? | |
Spring Boot必知必会 | ● 开始上手Spring Boot ● 使用SpringInitialzr快速创建应用 ● Spring Boot 自动配置 ● Spring Boot整合ELK | |
方向 | 内容安排 | 讲解案例 |
Spring Cloud概述 | ● Spring Cloud简介、核心功能、特点 ● Spring Cloud版本简介及与Spring Boot的兼容性 ● Spring Cloud子项目与提供的能力 ● 服务提供者与服务消费者 | |
服务注册与服务发现-Nacos | ● 服务注册与服务发现作用与原理剖析 ● Nacos搭建 ● 将应用注册到Nacos ● Nacos核心概念与领域模型 ● Nacos元数据 ● Nacos Server高可用 | |
方向 | 内容安排 | 讲解案例 |
客户端侧负载均衡-Ribbon | ● 负载均衡原理剖析 ● Ribbon简介 ● 原生Ribbon API ● 引入Ribbon后的架构演进 ● 编写第一个Ribbon Client ● Ribbon配置自定义与最佳实践总结 ● Eager Load | |
声明式的HTTP客户端-Feign | ● Feign简介 ● 编写第一个Feign Client ● Feign核心组件 ● Feign配置自定义与最佳实践总结 ● 继承特性与最佳实践总结 ● 压缩 ● 日志 ● 构造多参数请求 | |
方向 | 内容安排 | 讲解案例 |
断路器-Sentinel | ● 雪崩效应是什么 ● 常见容错思路与方案 ● 使用Sentinel实现容错 ● Sentinel Dashboard ● 流控规则 ● 降级规则 ● 热点规则 ● 系统规则 ● 授权规则 ● 代码配置规则 ● Sentinel API ● SentinelResource注解详解 ● RestTemplate整合Sentinel ● Feign整合Sentinel ● 规则持久化 ● 集群流控 | |
API Gateway-Zuul | ● API网关简介 ● Zuul上手 ● 调试端点 ● 路由配置详解 ● 文件上传 ● 过滤器详解 ● 容错与回退 ● 高可用Zuul ● 整合异构平台-Sidecar ● Debug Zuul ● 坑的总结:【转发不正常怎么定位?安全如何管理】 ● 【案例】Zuul实现认证与授权 ● 【案例】Zuul实现限流与降级 | |
API Gateway-Spring Cloud Gateway | ● Spring Cloud Gateway是什么? ● Spring Cloud Gateway vs Zuul ● Spring Cloud Gateway上手 ● Spring Cloud Gateway核心概念 ● Spring Cloud Gateway架构剖析 ● 路由谓词工厂 ● 过滤器工厂 ● 全局过滤器 | |
配置中心-Nacos 1小时 | ● 为什么要使用配置中心 ● 使用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的后端存储 ● 生成依赖关系图 | |
微服务安全 | ● 微服务安全的原则 ● Spring Cloud Security方案 ● Zuul上统一控制方案 ● Session共享方案 ● 外部无状态,内部有状态方案 ● 我司方案 | |
最佳实践总结 | ● Spring Cloud最佳实践总结 ● 性能优化的思路与实践总结 ● 坑的总结(如何避免常见问题) ● 解决问题的思路总结 ● 生产可用的快速开发平台 ● 与遗留技术栈的共存、割接方案 |