当前位置: 首页 > article >正文

Spring Cloud由入门到精通

文章目录

  • 1.初识微服务
    • 1.1. 单体架构
    • 1.2.分布式架构
    • 1.3.微服务
    • 1.4 微服务技术比对
    • 1.5.Spring Cloud
    • 1.6. 总结
  • 2.服务拆分和远程调用
    • 2.1.服务拆分原则
    • 2.2.服务拆分示例
      • 2.2.1.项目工程结构设计
      • 2.2.2.创建Maven项目工程
    • 2.3.实现远程调用案例
      • 2.3.1.案例需求:
      • 2.3.2. 注册 Rest Template
      • 2.3.3.实现远程调用
      • 2.3.4 idea启动多模块服务配置
    • 2.4.提供者与消费者
  • 3.Eureka注册中心
    • 3.1.Eureka的结构和作用
    • 3.2. 搭建 eureka-server
      • 3.2.1.创建eureka-server服务
      • 3.2.2. 引入 eureka 依赖
      • 3.2.3. 编写启动类
      • 3.2.4.编写配置文件
      • 3.2.5. 启动服务
    • 3.3.服务注册
      • 1 )引入依赖
      • 2)配置文件
      • 3 )启动多个 user-service 实例
    • 3.4.服务发现
      • 1 )引入依赖
      • 2)配置文件
      • 3)服务拉取和负载均衡
  • 4.Ribbon 负载均衡
    • 4.1.Ribbon 实现负载均衡
    • 4.2.自定义负载均衡策略
    • 4.3. 饥饿加载
  • 5.Nacos注册中心
    • 5.1. 认识Nacos
    • 5.2、安装 Nacos
      • 1、Windows 安装
        • 1.1、下载安装包
        • 1.2 解压
        • 1.3.端口配置
        • 1.4.启动
        • 1.5 .访问
      • 2、Linux 安装
        • 2.1.安装JDK
        • 2.2. 上传安装包
        • 2.3.解压
        • 2.4.端口配置
        • 2.5.启动
      • 3. Nacos 的依赖
    • 5.3、服务注册到Nacos
      • 1 )引入依赖
      • 2)配置nacos地址
      • 3 )重启
    • 5.4、服务分级存储模型
      • 5.3.1. 给 user-service 配置集群
      • 5.3.2. 同集群优先的负载均衡
    • 5.5、 权重配置
    • 5.6、环境隔离
      • 1)创建namespace
      • 2)给微服务配置namespace
    • 5.7、Nacos 与 Eureka 的区别
  • 6.Nacos配置管理
    • 6.1.统一配置管理
    • 1)在nacos中添加配置文件
    • 2)从微服务拉取配置
    • 6.2. 配置热更新
      • 1)方式一
      • 2)方式二
  • 7.Feign远程调用
    • 7.1.Feign 替代 Rest Template
      • 1 )引入依赖
      • 2)添加注解
      • 3 )编写 Feign 的客户端
      • 4)改造代码
      • 5)使用步骤总结
      • 6)Feign的功能
        • 6.1 远程调用
        • 6.2 实现负载均衡
    • 7.2.自定义Feign的日志配置
      • 7.2.1.配置文件方式
      • 7.2.2.Java代码方式
    • 7.3.Feign使用优化
      • 1 )引入依赖
      • 2)配置连接池
    • 7.4.Feign的最佳实践
      • 7.4.1.抽取方式
      • 7.4.2.实现基于抽取的最佳实践
        • 1 )抽取 Feign Client
        • 2)在order-service中使用feign-api
        • 3) 引入feign-api的依赖
        • 3 )重启测试
        • 4)解决扫描包问题
  • 8.Gateway服务网关
    • 8.1.为什么需要网关
    • 8.2.gateway快速入门
      • 1)创建gateway服务,引入依赖
      • 2 )编写启动类
      • 3 )编写基础配置和路由规则
      • 4 )重启测试
      • 5)网关路由的流程图
    • 8.3. 过滤器工厂
      • 8.3.1. 路由过滤器的种类
      • 8.3.2.请求头过滤器
      • 8.3.3.默认过滤器
      • 8.3.4. 总结
  • 9.Gateway网关综合案例(全局过滤器)
    • 9.1 实现登录
      • 9.1.1 导入依赖
      • 9.1.2 引入Jwt工具类
      • 9.1.3 添加登录业务
    • 9.2 实现是否登录校验
      • 9.2.1 网关配置添加忽略路径数组
      • 9.2.2 创建AuthProperties类
      • 9.2.3 自定义网关登录校验过滤器(全局过滤器)
      • 9.2.4 过滤器执行顺序
      • 9.2.5 测试登录校验
      • 9.2.6 WebFlux 和 Spring MVC 的主要区别
    • 9.3 网关传递登录用户
      • 9.3.1 网关中添加传递用户信息代码
      • 9.3.2 在通用模块添加工具类
      • 9.3.3 在通用模块添加拦截器
      • 9.3.4 配置拦截器
      • 9.3.5 配置 spring.factories
      • 9.3.6 测试登录用户信息传递
      • 9.3.7 优化代码
    • 9.4 远程调用接口OpenFeign传递用户信息
      • 9.4.1 添加拦截器
      • 9.4.2 测试OpenFeign传递用户信息
  • 10.前端请求Nginx反向代理Gateway集群
    • 10.1.解决跨域问题
    • 10.2 前端页面配置
    • 10.3 nginx.conf 配置
    • 10.4 测试使用nginx反向代理到网关
  • 11.分布式事务
    • 1.分布式事务问题
      • 1.1.本地事务
      • 1.2.分布式事务
      • 1.3.演示分布式事务问题
    • 2.理论基础
      • 2.1.CAP定理
        • 2.1.1. 一致性
        • 2.1.2. 可用性
        • 2.1.3. 分区容错
        • 2.1.4. 矛盾
      • 2.2.BASE理论
      • 2.3.解决分布式事务的思路
    • 3.初识Seata
      • 3.1.Seata的架构
      • 3.2.部署Seata
      • 3.3微服务集成seata
    • 4. 动手实践
      • 4.1.XA模式
        • 4.1.1.两阶段提交
        • 4.1.2.Seata的XA模型
        • 4.1.3.优缺点
        • 4.1.4.实现XA模式
      • 4.2.TA模式
        • 4.2.1.Seata的AT模型
        • 4.2.2.流程梳理
        • 4.2.3.AT与XA的区别
        • 4.2.4.脏写问题
        • 4.2.5.优缺点
        • 4.2.6.实现AT模式
      • 4.3.ACC模式
        • 4.3.1.流程分析
        • 4.3.2.Seata的TCC模型
        • 4.3.3.优缺点
        • 4.3.4.事务悬挂和空回滚
          • **1. 空回滚**
          • **2. 业务悬挂**
        • 4.3.5.实现TCC模式
          • 1.思路分析
          • 2. 声明TCC接口
          • 3.编写实现类
      • 4.4.SAGA模式
        • 4.4.1.原理
        • 4.4.2.优缺点
      • 4.5.四种模式对比
  • 12.微服务保护
    • 1.初识Sentinel
      • 1.1.雪崩问题及解决方案
        • 1.1.1.雪崩问题
        • 1.1.2.超时处理
        • 1.1.3.仓壁模式
        • 1.1.4.熔断降级
        • 1.1.5.流量控制
        • 1.1.6.总结
      • 1.2.服务保护技术对比
      • 1.3.Sentinel 介绍和安装
        • 1.3.1. 初识 Sentinel
        • 1.3.2.安装Sentinel
      • 1.4.微服务整合Sentinel
    • 2.流量控制
      • 2.1.簇点链路
      • 2.1.快速入门
        • 2.1.1.示例
        • 2.1.2.练习:
      • 2.2.流控模式
        • 2.2.1.关联模式
        • 2.2.2.链路模式
          • 1) 添加查询商品方法
          • 2) 查询订单时,查询商品
          • 3) 新增订单,查询商品
          • 4) 给查询商品添加资源标记
          • 5) 添加流控规则
          • 6) Jmeter 测试
        • 2.2.3. 总结
      • 2.3.流控效果
        • 2.3.1.warm up
          • 1)配置流控规则
          • 2) Jmeter 测试
        • 2.3.2. 排队等待
          • 1) 添加流控规则
          • 2) Jmeter 测试
        • 2.3.3.总结
      • 2.4.热点参数限流
        • 2.4.1.全局参数限流
        • 2.4.2.热点参数限流
        • 2.4.4.案例
          • 1) 标记资源
          • 2) 热点参数限流规则
          • 3) Jmeter测试
    • 3.隔离和降级
      • 3.1.Feignclient整合Sentine
        • 3.1.1.修改配置,开启sentinel功能
        • 3.1.2.编写失败降级逻辑(兜底类)
        • 3.1.3. 总结
      • 3.2.线程隔离(舱壁模式)
        • 3.2.1.线程隔离的实现方式
        • 3.2.2.Sentinel 的线程隔离
          • 1) 配置隔离规则
          • 2) Jmeter测试
        • 3.2.3.总结
      • 3.3.熔断降级
        • 3.3.1.慢调用
          • 1) 设置慢调用
          • 2) 设置熔断规则
          • 3) 测试
        • 3.3.2.异常比例、异常数
          • 1)设置异常请求
          • 2) 设置熔断规则
          • 3) 测试
    • 4.授权规则
      • 4.1.授权规则
        • 4.1.1.基本规则
        • 4.1.2.如何获取origin
        • 4.1.3.给网关添加请求头
        • 4.1.4.配置授权规则
      • 4.2.自定义异常结果
        • 4.2.1.异常类型
        • 4.2.2.自定义异常处理
    • 5. 规则持久化
      • 5.1.规则管理模式
        • 5.1.1.puIl模式
        • 5.1.2.push模式
      • 5.2.实现push模式

1.初识微服务

随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢?

1.1. 单体架构

单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署。

在这里插入图片描述

单体架构的优缺点如下:

优点

  • 架构简单
  • 部署成本低

缺点

  • 耦合度高(维护困难、升级困难)

1.2.分布式架构

分布式架构:根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。


http://www.kler.cn/a/459495.html

相关文章:

  • leetcode 149. 直线上最多的点数
  • 系统思考—信任
  • 批量读取pdf发票中二维码的信息
  • Windows安装Confluence详解
  • Mono里运行C#脚本18—mono_image_load_names
  • 当下热点系列 篇二:大消费题材解析和股票梳理
  • C++ ——— 单/多参数构造函数的隐式类型转换和 explicit 关键字
  • Prompt Engineering:提示词工程最佳实践与应用
  • DPIN基金会在曼谷发布全球去中心化GPU算力网络计划
  • Pip 简介与工作原理技术分享
  • 比分网站开发全流程/快速搭建比分网直播站/用现代技术实现高效架构
  • 什么是 PyPI(Python Package Index,Python 包索引)?
  • 面试经典150题——数组/字符串(三)
  • 自研国产零依赖前端UI框架实战006 实现表格分页的功能
  • 解决PS 撤销卡顿
  • 【 CSS 】sass 扩展语言的安装
  • IPC$远程植入木马
  • 【YashanDB知识库】yasql / as sysdba无法登录
  • Java设置服务器图片
  • Java-36 深入浅出 Spring - IoC容器体系 BeanFactory过程分析 Bean Lazy-Init
  • Spring Boot集成Netty创建一个TCP服务器,接收16进制数据(自定义解码器和编码器)
  • 纯血鸿蒙ArkUI线性布局详解
  • 【Vue 教程】使用 Vite 快速搭建前端工程化
  • Go singleflight库源码分析
  • 2.阿里云flinkselectdb-jar作业
  • 【React】- 跨域PDF预览、下载(改文件名)、打印