美文网首页
如何限流 ?

如何限流 ?

作者: Britney_z | 来源:发表于2019-01-08 18:43 被阅读7次

最近项目中要用到限流,就做了一些知识的积累。

一、应用级别

1、限制瞬时并发数 ,如nginx的limit_conn模块,用来限制瞬时并发连接数、nginx的limit_req模块,限制每秒的平均速率。

2、限流总并发/连接/请求数

如果你使用过Tomcat,其Connector其中一种配置有如下几个参数:

 acceptCount:如果Tomcat的线程都忙于响应,新来的连接会进入队列排队,如果超出排队大小,则拒绝连接

maxConnections:瞬时最大连接数,超出的会排队等待

 maxThreads:Tomcat能启动用来处理请求的最大线程数,如果请求处理量一直远远大于最大线程数则可能会僵死

二:服务级别限流

    2.1、限流总资源数

    可以使用池化技术来限制总资源数:连接池、线程池。比如分配给每个应用的数据库连接是100,那么本应用最多可以使用100个资源,超出了可以等待或者抛异常

    2.2、限流某个接口

        2.2.1 限流某个接口的总并发/请求数

                可以使用AtomicLong、信号量等

        2.2.2 平滑限流某个接口的请求数         

平滑突发限流,每隔5秒放入一个令牌 预热

根据指定的稳定吞吐率和预热期来创建RateLimiter,这里的吞吐率是指每秒多少许可数(通常是指QPS,每秒多少查询),在这段预热时间内,RateLimiter每秒分配的许可数会平稳地增长直到预热期结束时达到其最大速率(只要存在足够请求数来使其饱和)。同样地,如果RateLimiter 在warmupPeriod时间内闲置不用,它将会逐步地返回冷却状态。也就是说,它会像它第一次被创建般经历同样的预热期。返回的RateLimiter 主要用于那些需要预热期的资源,这些资源实际上满足了请求(比如一个远程服务),而不是在稳定(最大)的速率下可以立即被访问的资源。返回的RateLimiter 在冷却状态下启动(即预热期将会紧跟着发生),并且如果被长期闲置不用,它将回到冷却状态。

      2.2.3 分布式限流

分布式限流最关键的是要将限流服务做成原子化,而解决方案可以使使用redis+lua或者nginx+lua技术进行实现

三、限流算法

参考:http://ifeve.com/guava-ratelimiter/

参考:https://blog.csdn.net/wangnan9279/article/details/79287646

相关文章

  • 分布式的东西

    1、分布式总体限流方案 例 100w总流量限流如何在100台分布机做总体限流 2、如何设计秒杀系统,应该关注什么:...

  • (9)弹力设计篇之“限流设计”

    1、限流的策略 2、限流的算法:计数器、队列、漏斗和令牌桶。 3、如何基于响应时间来限流。 4、限流设计的要点 限...

  • RPC(十二:Sentinel )

    上一篇我们简单介绍了Sentinel如何使用,并演示如何限流,这篇继续其他功能的介绍吧。Sentinel限流 关联...

  • 如何限流 ?

    最近项目中要用到限流,就做了一些知识的积累。 一、应用级别 1、限制瞬时并发数 ,如nginx的limit_con...

  • 令牌桶算法

    Guava RateLimiter 如何解决高并发场景下的限流问题? 令牌桶算法,要想通过限流器,必须拿到令牌。 ...

  • 【sentinel】深入浅出之原理篇FlowSlot

    FlowSlot则用于根据预设的限流规则,以及前面 slot 统计的状态,来进行限流。官方文档:如何使用Senti...

  • 抖音限流怎么办?一招解封抖音限流50天问题!

    抖音限流怎么办?一招解封抖音限流50天问题! 首先我们如何确定抖音限流了? 第一种:收到抖音官方发的通知。 1、收...

  • 负载

    硬负载软负载负载均衡token令牌高并发如何通信限流限速

  • 最常用的限流算法以及如何在http中间件中加入流控

    [TOC] 最常用的限流算法以及如何在http中间件中加入流控 何为限流? 通过对并发访问/请求进行限速,或者对一...

  • 经典限流算法:令牌桶算法

    Guava 的限流器使用上还是很简单的,那它是如何实现的呢?Guava 采用的是令牌桶算法,其核心是要想通过限流器...

网友评论

      本文标题:如何限流 ?

      本文链接:https://www.haomeiwen.com/subject/zbrvrqtx.html