首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    简析限流算法

    限流顾名思义是限制流量,限制流量的目的是为了保障服务稳定运行,避免服务被流量冲垮。当流量超出服务处理能力时,部分请求将会被限流组件拦截。被拦截的请求可能会被丢弃,如果是 C 端请求,那么这个请求可能会被导向指定的错误页上,而不是生硬的拒绝。这里我们丢弃掉一部分请求,以保证大部分请求可以正常响应。如果我们不这样做,那么服务崩溃后,所有请求都将无法响应了。当一台机器崩溃后,该机器的所有流量将由其他机器承担,这样就会造成剩余机器压力增大,进而导致奔溃,最后形成雪崩。除此之外,服务崩溃还会造成数据不一致的严重问题,特别是一些敏感数据。比如对于电商网站,如果后台服务准备将某笔订单数据存入数据库时,服务突然崩溃,导致数据没有落库。这个时候,开发同学就要想办法修订数据了。

    02

    断路器流程图

    涉及到断路器的三个重要参数:快照时间窗、请求总数阀值、错误百分比阀值。 1:快照时间窗:断路器确定是否打开需要统计一些请求和错误数据,而统计的时间范围就是快照时间窗,默认为最近的10秒。 2:请求总数阀值:在快照时间窗内,必须满足请求总数阀值才有资格熔断。默认为20,意味着在10秒内,如果该hystrix命令的调用次数不足20次,即使所有的请求都超时或其他原因失败,断路器都不会打开。 3:错误百分比阀值:当请求总数在快照时间窗内超过了阀值,比如发生了30次调用,如果在这30次调用中,有15次发生了超时异常,也就是超过50%的错误百分比,在默认设定50%阀值情况下,这时候就会将断路器打开。

    01
    领券