4006-998-758
3000+课程任你选择
微服务架构实战
研发学院 开课时间:2021-07-03
王志远

对Spring Cloud、微服务、持续集成、持续交付、容器生态圈常用组件均有涉猎。 目前的研究重心:Spring Cloud、Docker、Kubernetes,及其相关生态的技术,并总结项目落地过程中遇到的坑。 出版著作 著有《Spring Cloud与Docker微服务架构实战》一书,是2017年十佳畅销书之一,也是国内第一本Spring Cloud相关书籍。 历任Java高级开发、架构师、高级架构师、技术专家。热爱技术交流,曾代表公司参加全球微服务架构高峰论坛、QCon等技术沙龙。拥抱开源,多个项目开源在Github与Git@OSC上,并有个人Side Project微信小程序,分享干货。 


查看老师详情
课程内容


课程概要


学习本课程,学员将会对微服务原理及如何用以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


返回上一级