• 限流相关的概念


    漏桶和令牌桶

    漏桶主要目的是控制数据注入到网络中的速率,平滑网络上的突发流量.

    令牌桶原理是系统会以一个恒定的速度往桶里放入令牌,而如果请求需要被处理,则需要先从桶里获取一个令牌,当桶里没有令牌,则拒绝服务.

    漏桶由于速率恒定,不能应付突发rate.而令牌桶则可以在短时间应付突发rate.即短时间允许流量速率大于令牌生成速率.比如令牌产生速率为4/s,令牌桶上线为8,那第一秒没有请求,那第二秒就可以处理8个请求.这种允许突发的高峰的设计,更符合服务器的性能特性.毕竟平均最大qps和瞬间最大qps是不一样的.

    sliding window

    为了应对突发流量,在统计的时候,把时间分为更细个颗粒度,维护多个小时间段的计数器.从而避免突发流量.比如要求每分钟qps为100,如果用户在59分30秒的时候发送100个请求,又在0分30秒之前的时候又发100个请求,其实这时从59m30s到0m30s的时间内qps为200,这时候把统计的时间段分隔的更细,可以有效避免这种情况的发生.

    Hystrix有两种隔离级别Thread/Semaphore

    Thread提供一个线程池,一个请求使用一个线程,超过线程池大小的请求直接返回失败.

    Semaphore限制并发资源.请求有自己的线程,通过Semaphore count来控制并发量.

    Thread模式更消耗资源,高并发环境更适合用Semaphore.Semaphore模式是使用调用者的线程,也就是说没有完全隔离.Semaphore超时时,没办法停止.

  • 相关阅读:
    详解著名的awk Oneliner,第三部分:选择性输出特定行
    显示特定行
    nWave指令
    make 命令
    VIM脚本变量
    terninal 快捷键
    vim 实现begin end 配对 使用matchit插件
    VIM删除重复行
    linux命令--find(1)
    zabbix--创建触发器
  • 原文地址:https://www.cnblogs.com/saias/p/9254413.html
Copyright © 2020-2023  润新知