超全面的SpringCloud Alibaba电子版教程,我司已用三年(新人老人万能通用版)

197 阅读6分钟

七年前面试最常问的并且可以顺利拿到高薪的技能是 Dubbo ,三年前面试,只要你简历上有 Spring Cloud 项目的相关经验,肯定会打动面试官,现在呢?恐怕简历上有Dubbo和简单的Spring Cloud技术和经验是无法让面试官高看你的。

那如何学习呢?市面上对于SpringCloud Alibaba讲解的资料零零碎碎,根本不成完整体系;去官网学习又无从下手,饱受打击,因此我将在这分享给大家! 小伙伴可找小助理免费获取哦 ikt4435

微服务里的注册中心与配置中心:Nacos

  • 为什么Nacos这么受欢迎?
  • 启动Nacos服务
  • 服务注册发现
  • 启动配置管理
  • Nacos如何共享配置?
  • Nacos如何持久化?
  • Nacos集群如何搭建?
  • Nacos是CP还是AP?

注册中心技术选型

  • 为什么需要注册中心?
  • 如何实现一个注册中心?
  • 如何解决负载均衡的问题?
  • 注册中心如何选型?
  • Zookeeper
  • Eureka
  • Nacos
  • Consul
  • Kubernetes

配置中心技术选型

  • 为什么需要配置中心
  • 开源配置中心基本介绍
  • Disconf
  • 配置中心核心概念的对比
  • 灰度发布
  • 权限管理
  • 版本管理&回滚
  • 配置格式校验
  • 监听查询
  • 多环境
  • 多集群
  • 配置实时推送的对比
  • 高可用对比:Spring Cloud Config
  • 高可用对比:Apollo
  • 高可用对比:Nacos
  • 多语言支持的对比
  • 迁移支持
  • 性能对比:单机读写场景
  • 性能对比:3节点读写场景
  • 功能特性对比总结

服务调用 OpenFeign

  • Feign是什么?
  • openFeign是什么?
  • Feign和openFeign有什么区别?
  • 环境准备
  • 创建服务提供者
  • 创建服务消费者
  • openFeign如何传参?
  • 超时处理:设置Ribbon的超时时间(不推荐)
  • 超时处理:设置openFeign的超时时间(推荐)
  • 如何开启日志增强?
  • 如何替换默认的httpclient?
  • 如何通讯优化?
  • 如何熔断降级?

限流神器Sentinel

  • 什么是Sentinel?
  • Sentinel和Hystrix有何区别?
  • Sentinel版本如何选择?
  • Sentinel控制台如何安装?
  • 微服务如何接入Sentinel控制台?
  • 三种流控效果
  • 三种流控模式
  • 两种统计类型
  • 三种熔断策略
  • 热点参数如何限流?
  • 系统自适应如何限流?
  • 如何自定义限流返回的异常信息?
  • 如何对异常进行降级处理?
  • Sentinel的黑白名单如何设置?
  • 限流规则如何持久化?
  • 限流规则如何推送到Nacos进行持久化?
  • 集群流控如何做?
  • 网关限流如何配置?
  • 整合openFeign如何实现熔断降级?

分布式事务:Seata

  • 什么是分布式事务?
  • 一致性(Consistency)
  • 可用性(Availability)
  • 分区容忍性(Partition tolerance)
  • 单体架构为什么只能在A和C之间做出取舍?
  • 强一致性
  • 弱一致性
  • 最终一致性
  • BA(Basic Available)基本可用
  • S(Soft State)柔性状态
  • E(Eventual Consisstency)最终一致性
  • 2阶段提交(2PC)
  • 3阶段提交(3PC)
  • TCC(事务补偿)
  • 本地消息表
  • MQ事务方案(可靠消息事务)
  • 最大努力通知
  • saga事务
  • 什么是Seata?
  • AT模式原理分析
  • 搭建Seata TC协调者
  • Seata客户端搭建(RM)

微服务网关 Spring Cloud Gateway

  • 为什么需要网关?
  • 网关的基本功能?
  • 为什么选择Spring Cloud Gateway?
  • Spring Cloud Gateway几个必知的术语?
  • 网关如何搭建?
  • 什么是Predict(断言)?
  • GatewayFilter(局部过滤器)
  • GlobalFilter(全局过滤器)
  • 如何集成注册中心?
  • 如何实现动态路由?
  • 如何自定义全局异常处理?

Spring Cloud Gateway整合阿里Sentinel网关限流实战

  • 网关如何限流?
  • 限流配置
  • 如何自定义限流异常信息?
  • 直接配置文件中定制
  • 编码定制
  • 网关限流了,服务就安全了吗?

分布式链路追踪之Spring Cloud Sleuth

  • 为什么需要链路追踪?
  • 常见的链路追踪技术有哪些?
  • Spring Cloud Sleuth是什么?
  • Spring Cloud 如何整合Sleuth?
  • 什么是ZipKin?
  • zipkin服务端如何搭建?
  • zipKin客户端如何搭建?
  • 服务端连接RabbitMQ
  • 客户端添加RabbitMQ
  • 配置文件中传输方式切换
  • zipkin如何持久化?

链路追踪之SkyWalking

  • 什么是Skywalking?
  • Skywalking和Spring Cloud Sleuth+ZipKin如何选型?
  • Skywalking架构是怎样的?
  • 服务端如何搭建?
  • 客户端如何搭建?
  • 数据如何持久化?
  • 日志监控如何做?
  • 性能剖析如何做?
  • 监控告警如何做?

跨库多表存在大量数据依赖问题有哪些解决方案?

  • 数据冗余的方案
  • 解耦业务逻辑的数据同步方案
  • 最终效果

OAuth2.0 四种授权类型+授权服务、资源服务搭建

  • 为什么需要OAuth2.0?
  • 令牌和密码的区别?
  • 什么是OAuth2?
  • OAuth2.0的四种模式?
  • OAuth2.0的认证中心搭建
  • OAuth2.0的资源服务搭建
  • OAuth2.0的四种模式测试
  • OAuth2.0其他端点的测试

OAuth2.0集成JWT令牌认证

  • 什么是JWT?
  • OAuth2.0认证授权服务搭建
  • OAuth2.0资源服务搭建
  • 测试
  • 源码追踪

OAuth2.0 认证、资源服务 异常自定义

  • 案例服务搭建
  • 认证服务的异常
  • 认证服务自定义异常
  • 信息资源服务器的异常
  • 资源服务自定义异常信息

JWT令牌如何退出失效?

  • 解决方案:黑名单
  • 解决方案:白名单
  • 实现方案:网关层解析JWT的jti、过期时间放入请求头中
  • 实现方案:下游微服务的过滤器修改
  • 实现方案:注销接口实现

OAuth2.0 实现 JWT令牌增强

  • 网关层如何获取令牌中的信息?
  • 扩展SecurityUser
  • UserDetailsService中查询出userId
  • 改造JwtAccessTokenConverter
  • 注入JwtAccessTokenConverter
  • 网关层的全局过滤器
  • 微服务过滤器改造

Spring Cloud Gateway 集成OAuth2.0 实现统一认证鉴权

  • 微服务认证方案
  • 案例架构
  • 认证授权服务搭建
  • 网关服务搭建
  • 订单微服务搭建
  • 为什么要将URI和权限放入Redis?

Spring Cloud Gateway集成RBAC权限模型实现动态权限鉴权

  • 什么是RBAC权限模型?
  • URL对应的权限如何维护?
  • 如何实现Restful风格的权限控制?
  • 这样能实现动态权限控制吗?
  • 从数据库加载URL<->角色对应关系到Redis
  • 实现UserDetailsService加载权限
  • 鉴权管理器中校验权限
  • 总结

Seata实现TCC模式解决分布式事务

  • TCC模式①Try 阶段
  • TCC模式②Confirm / Cancel 阶段
  • 通用型TCC解决方案
  • 异步确保型TCC解决方案
  • 补偿型TCC解决方案
  • TCC事务模式的落地实现
  • TCC事务模型的三个异常
  • TCC接口定义
  • TCC接口实现
  • 如何防止TCC模型的三个异常?
  • 创建订单的业务方法
  • 其他的配置

OpenFeign实现令牌中继

  • 什么是令牌中继?
  • 解决方案

蓝绿发布、灰度发布、滚动发布

  • 蓝绿发布
  • 滚动发布
  • 灰度发布
  • A/B测试

Spring Cloud Gateway整合Swagger实现API聚合

  • 为什么需要聚合?
  • 如何聚合?
  • 单个服务如何聚合Swagger?
  • 网关如何聚合Swagger?
  • 搜索功能
  • 离线文档
  • 令牌配置
  • 配置缓存
  • 全局参数配置

Spring Security 自定义授权模式

  • 为什么需要自定义授权类型?
  • 实现思路
  • 自定义UserDetailService
  • 自定义AuthenticationToken
  • 自定义TokenGranter
  • 自定义AuthenticationProvider
  • 将自定义的MobilePasswordAuthenticationProvider注入IOC容器
  • Security的全局配置指定SmsCodeSecurityConfig
  • 加到CompositeTokenGranter集合中
  • oauth_client_details表中添加授权类型