• 使用Hystrix实现服务降级和熔断


    目前已经停更进维,以吸收理论和模式为主

    Hystrix是一个用于处理分布式系统的延迟容错的开源库,在分布式系统中,许多依赖不可避免的会调用失败,比如超市、异常等,Hystrix能够保证在一个依赖出问题的1情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性

    功能列表

    • 触发服务降级的场景

      • 程序运行异常

      • 超时

      • 服务熔断触发服务降级

      • 线程池、信号量打满也会导致服务降级

    • 服务熔断处理

      • 相当于保险丝,直接拉闸,服务的降级-》进而熔断-》恢复调用链路

    • 服务限流

      • 秒杀高并发等操作

      • 使用的是Tomcat的内置线程池,所以在高并发下,可能服务会出现线程不够用的情况

    • 接近实时的监控

     涉及到断路器的三个重要参数

    @HystrixProperty(name = "circuitBreaker.enabled",value = "true"),// 是否开启断路器
    @HystrixProperty(name = "circuitBreaker.requestVolumeThreshold",value = "10"),// 请求次数
    @HystrixProperty(name = "circuitBreaker.sleepWindowInMilliseconds",value = "10000"), // 时间窗口期
    @HystrixProperty(name = "circuitBreaker.errorThresholdPercentage",value = "60"),// 失败率达到多少后跳闸
    • 快照时间窗:断路器确定是否打开需要统计一些请求和错误数据,而统计的时间范围就是快照时间窗,默认为最近的10秒;

    • 请求总数阈值:在快照时间窗内,必须满足请求总数阈值才有资格熔断。默认是20,意味着在10秒内,如果该hystrix命令的调用次数不足20次,即使所有的请求都超时或其他原因失败,断路器都不会打开;

    • 错误百分比阈值:当请求总数在快照时间窗内超过了阈值,比如发生了30次调用,如果在这30次调用中,有15次发生了超时异常,也就是超过了50%的错误百分比,在默认设定的50%阈值情况下,这时候就会将断路器打开。

  • 相关阅读:
    用于创建和管理 Azure 虚拟机的常用 PowerShell 命令
    在 Azure Resource Manager 中为虚拟机设置密钥保管库
    使用 Azure 资源管理器向 Windows VM 应用策略
    Azure 门户中基于角色的访问控制入门
    为 Azure Resource Manager 中的虚拟机设置 WinRM 访问权限
    如何加密 Windows VM 上的虚拟磁盘
    适用于 Windows VM 的 Azure 示例基础结构演练
    Azure 中虚拟机的备份和还原选项
    1.1 基本算法和记号
    tomcat的class加载的优先顺序
  • 原文地址:https://www.cnblogs.com/smallVampire/p/13044711.html
Copyright © 2020-2023  润新知