SpringCloud入门简述( 四 )

  • 当熔断器开启达到一定的时间 , 进入半熔断状态 , 允许部分请求的调用 , 同时监控其成功率
  • 如果该服务的调用成功率达到预期 , 关闭熔断器 , 恢复原有服务的调用逻辑 , 否则继续开启熔断 , 重复234
  • 示例:
    // 在getUserById方法出现故障时执行getUserFallBack方法@HystrixCommand(fallbackMethod = "getUserFallBack")@GetMapping(value=https://www.isolves.com/it/cxkf/kj/2022-04-18/"getUserNameById")public String getUserById(Long id){return UserService.selectById(id);}public String getUserFallBack(){return "请稍后再试";}6.3 熔断、降级、限流处理服务#熔断:直接切断服务的调用
    降级:牺牲非核心业务保证核心服务的正常
    限流:服务访问量达到阈值后拒绝多余的调用
    7、Zuul网关#? Zuul是一个微服务网关 。网关:是一个网络系统的前置入口 。也就是说要想访问一个有网关的网络系统请求相应的服务 , 需要先进入网关 , 然后路由到相应的服务 。
    ? 通常是组成一个系统的微服务很多、或者有权限要求时需要用到网关 。
    7.1 网关的作用#
    • 统一入口
    • 为全部的服务提供一个统一的入口 , 将内外隔离 , 保障了服务的安全性
    • (如:多个微服务组成的系统拥有一个统一的请求入口)
    • 鉴权校验
    • 识别每一个请求的权限 , 拒绝不符合要求的请求
    • (如:校验用户的请求权限)
    • 动态路由
    • 动态地将请求路由到不同的后端集群中
    • 减少耦合
    • 减少客户端和服务端的耦合程度 , 使得服务可以独立发展 , 通过网关层来映射
    7.2 过滤器#? Zuul提供一个过滤器 , 父类为ZuulFilter , 用来过滤代理请求 , 提供额外的功能逻辑(这点类似于AOP) , 包括前置过滤、路由后过滤、后置过滤、异常过滤 。
    ? ZuulFilter包含的抽象方法:filterType、filterOrder、shouldFilter、run
    • filterType
    • 返回一个字符串 , 代表过滤器的类型
      • pre:前置过滤 , 在请求路由之前执行 , 如:身份认证、日志记录等
      • router:在路由执行后 , 服务调用前被调用
      • error:处理请求发生错误时调用
      • post:请求到达服务之后执行 , 如:添加响应头 , 记录响应日志
    ?
    SpringCloud入门简述

    文章插图
     
    • filterOrder
    • 过滤器的执行顺序 , 数值越小 , 优先级越高
    • shouldFilter
    • 是否执行该过滤器 , true , false
    • run
    • 执行相关业务逻辑
    8、Config配置中心#? 当微服务众多的时候 , 想要管理各个服务的配置时过于繁杂 , SpringCloud Config则可以用来对每个微服务的配置进行集中的管理 。可以实现权限管控、灰度发布、版本管理、格式检验、安全配置等 。
    灰度发布:在进行产品研发时 , 新版本的发布可能存在一定的风险 , 那么让一部分用户继续使用A特性 , 并且提供B特性让部分用户使用 , 如果B特性口碑良好 , 产品稳定 , 就可以逐渐进行用户的迁移 。灰度发布保证发生问题可以及时解决 。就像是打游戏有个测试版本 , 如果测试用户对该版本满意 , 则可以继续发布到正式 , 用户不满意就能及时补救 , 反正没有发布到正式 。
    作用:
    • 集中管理配置文件
    • 在服务运行期间实现动态的配置刷新
    • 实现属性值的加密解密
    • 可以实现基于GIT进行版本管理
    特点:
    • 中心化管理
    • 不限语言
    • 灵活的版本控制
    文章来自
    https://www.cnblogs.com/william-m/p/16153557.html




    推荐阅读