• springcloud11:Hystrix服务降级(断路器)


    • 分布式系统面临问题:
      80调8001,8001调用8002等等链路调用,如果其中一个服务超时情况,服务雪崩:需要有服务降级。服务熔断:如果正常调用失败需要有备选方案。
    • Hystrix能干什么?
      服务降级
      服务熔断
      接近实时监控
    • Hystrix停更进维
      进入维护阶段
    • Hystix重要概念
      服务降级:fallback (对方系统不可用了,需要有备选方案)发生情况:超时,线程池打满,程序运行异常。
      服务熔断:break(保险丝达到最大服务访问后,直接拒绝访问,调用服务降级)(服务降级-进而熔断-恢复调用链路)
      服务限流:flowlimit(如果流量拥挤,安排排队)
    • 案例配置
      controller中的服务 一个很快 一个访问三秒
      此时问题不大
      高并发的压力测试 20000个来访问三秒服务
      此时访问很快的也会很慢(转圈圈)
      为什么会被卡死?
      tomcat的默认工作线程满了
    • 解决上述问题?
      对方服务超时(宕机)后,调用者不能卡死,必须有服务降级
      调用者自己出故障有自我要求,自己处理降级
    • 如何处理降级?
    1. 解决对方服务器超时的服务降级
      8001 先从自身找问题,设置自身调用时间,超过了时间有兜底方法处理,做服务降级fallback(服务端降级保护)
      80测找问题,自己对自己的降级保护,(客户端降级保护)
      上述方法 代码耦合,每个方法都有兜底方法即代码膨胀
      解决方法:
      设置全局兜底方法解决代码膨胀问题
      实现@Feign的接口中的方法的类来统一fallback定义和调度
    • 服务熔断(服务熔断也会触发服务降级)
      断路器:保险丝
      熔断:检测到服务差错,会进行服务降级,但是服务正常,恢复调用链路
    • 整理
      熔断打开:请求不会调用服务(直接服务降级)
      熔断关闭:服务正常进行
      熔断半开:请求成功且符合规则认为当前服务正常
      涉及参数:
      时间参数:休眠时间,即当休眠时间到期,才会从关闭到半开状态的转换
      请求总数:满足请求总数
      错误百分比:判断是否超过总数的百分的错误,超过则开启断路器
    • 服务限流:高级篇alibaba的sentinal讲解
    • hystrix的工作流程图
    • 图形化监控(自己搭建图形化监控)
  • 相关阅读:
    网络安全笔记7——防火墙技术
    IN动态|小达智能科技领导一行莅临英码科技调研,携手打造时代特色的AI教学平台
    模拟网络延迟加载,添加正在加载中图标显示
    MyBatis动态SQL(if、choose、when和otherwise)标签
    为什么在变频器场合需要安科瑞的电力有源滤波器?
    SpringBoot:Put和Delete请求(动力)
    【PostgreSQL】GIN索引安装与使用 - 全模糊匹配/数组匹配,PG批量插入上万随机生成数据,随机生成字符串/数组
    UE4 命名规范
    近期刷题。
    河北建筑模板厂家供应-能强优品木业
  • 原文地址:https://blog.csdn.net/qq_44724899/article/details/128012002