课程概要
学习本课程,学员将会对微服务原理及如何用以Spring Cloud为中心的分布式应用架构有一个系统、全面的认识。通过学习,学员将能掌握相关的知识体系,并能够投入到项目实战中去。
本课程采用实战优先的原则,讲解如何从0开始编写基于Spring Boot/Cloud开发的微服务,并逐步解决项目中的问题,最终实现一个高可用的微服务架构。
本课程使用目前最新的Spring Cloud 2020.0.1讲解,各种新特性一览无余!
需要安装:
1、 JDK1.8
2、 Maven
3、 IntelliJ IDEA(或Spring Tool Suite,不建议原生Eclipse)
课程目标
使学员理解微服务是什么、有什么好处、设计原则、拆分原则
深入理解相关核心组件及相关扩展钩子,能够将相关组件投入项目实战,并具备一定扩展组件的能力
课程大纲
主题 | 内容 | 时长 |
微服务架构及概述 | 架构的演进史 微服务诞生背景 微服务架构的优点与挑战 微服务设计原则 微服务架构通览图 | 1 |
微服务拆分方法论与实践 | 微服务拆分方法论-领域驱动设计 微服务拆分方法论- by name. 微服务拆分方法论- by verb. 微服务拆分原则 微服务拆分实战(模拟项目去做拆分) 评估拆分是否合理的标准 数据库如何拆分? | 1.5 |
Spring Boot必知必会 | 什么是Spring Boot 使用Spring Initialzr快速创建应用 强大的Spring BootActuator Spring Boot 配置管理 | 1 |
将遗留项目平滑迁移到微服务架构 | 架构迁移原则 如何选择迁移的模块 绞杀者模式-理论 绞杀者模式-实战 修缮者模式-理论 修缮者模式-实战 数据库层面改造 | 1.5 |
Spring Cloud是什么 | Spring Cloud简介、核心功能、特点 Spring Cloud版本简介及与Spring Boot的兼容性 Spring Cloud子项目与提供的能力 服务提供者与服务消费者 | 0.5 |
服务注册与服务发现-Nacos | 服务注册与发现原理剖析 Nacos搭建与使用 将应用注册到Nacos Nacos核心概念 Nacos领域模型 元数据与注册中心扩展 搭建Nacos Server高可用集群 【案例】我们做了哪些扩展 | 1 |
客户端侧负载均衡-Ribbon | 负载均衡原理剖析 负载均衡器对比与选择 Ribbon简介 Ribbon核心组件详解 原生Ribbon API 引入Ribbon后的架构演进 编写第一个Ribbon Client Ribbon配置自定义 扩展Ribbon Eager Load | |
声明式的HTTP客户端-Feign | Feign简介 编写第一个Feign Client Feign核心组件详解 Feign配置自定义与最佳实践总结 继承特性与最佳实践总结 压缩 日志 构造多参数请求 | 1 |
高并发容错-Sentinel | Sentinel是什么 使用Sentinel实现容错 Sentinel Dashboard 流控规则 降级规则 热点规则 系统规则 授权规则 代码配置规则 Sentinel API SentinelResource注解详解 RestTemplate整合Sentinel Feign整合Sentinel 规则持久化 集群流控 | 2 |
API Gateway-Spring Cloud Gateway | Spring Cloud Gateway是什么? Spring Cloud Gateway上手 Spring Cloud Gateway核心概念 Spring Cloud Gateway架构剖析 路由谓词工厂详解 过滤器工厂详解 全局过滤器详解 扩展Spring Cloud Gateway 如何自建网关(思路与伪代码) 接口聚合 | 1 |
微服务安全 | 微服务安全常用方案对比与选择 无状态VS有状态 处处安全方案 外部无状态,内部有状态方案 内部裸奔方案 裸奔方案增强版 我司方案 基于Zuul实现微服务安全 基于Spring Cloud Gateway实现微服务安全 | 1.5 |
配置中心-Nacos | 为什么要使用配置中心 开源配置中心对比与选择 使用Nacos管理配置 如何实现配置回滚与配置刷新 引导上下文 如何实现应用配置共享 Nacos数据持久化 配置管理最佳实践 Nacos配置管理剖析 | 1 |
配置中心-Apollo | Apollo搭建 用Apollo管理配置 其他小节和Nacos一致,只是把Nacos换成Apollo而已 | 1 |
调用链监控-Skywalking | 调用链跟踪的必要性 调用链跟踪原理剖析 Skywalking是什么 安装Skywalking Skywalking上手 Java Agent插件与配置 用apm-customize-enhance-plugin监控任意类的任意方法 编写自己的Skywalking插件 动态配置 告警 集群部署 | 1 |
分布式事务-Seata | Seata是什么 Seata搭建与整合 AT模式实现分布式事务 TCC模式实现分布式事务 Saga模式实现分布式事务 XA模式实现分布式事务 | 1 |
缓存与常见问题 | 缓存模式(Cache-Aside、Read-Through、Write-Through、Write-Behind)与选择 缓存回收策略 缓存回收算法 多级缓存 如何提升命中率? 缓存雪崩与解决方案 无底洞问题与解决方案 热点key重建与优化 缓存穿透问题与解决方案 | 1.5 |
最佳实践总结 | Spring Cloud最佳实践总结 性能优化的思路与实践总结 坑的总结(如何避免常见问题) 解决问题的思路总结 生产可用的快速开发平台 与遗留技术栈的共存、割接方案 | 1 |
展望与总结 | 818当前分布式领域的技术趋势 演示一下用Kubernetes如何交付应用 818 Kubernetes + Istio替代Spring Cloud 课程总结 | 1 |