高并发之API接口限流

时间:2019-03-25
本文章向大家介绍高并发之API接口限流,主要包括高并发之API接口限流使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

原文链接: https://blog.csdn.net/zrg523/article/details/82185088

总结:

1.控制并发数量   Semaphore

2.控制访问速率

 算法:

  • 漏桶算法

  • 令牌桶算法

   实现

  • Google开源工具包Guava提供的限流工具类RateLimiter来实现控制速率

3.控制单位时间窗口内请求数

应用级限流的一些方法就介绍完了。假设将应用部署到多台机器,应用级限流方式只是单应用内的请求限流,不能进行全局限流。因此我们需要分布式限流和接入层限流来解决这个问题。

----------------------------------------------------------------------------

1.分布式限流

  • 自定义注解+拦截器+Redis实现限流 (单体和分布式均适用,全局限流)

2.接入层限流

  • 主要介绍nginx 限流,采用漏桶算法。限制原理:可一句话概括为:“根据客户端特征,限制其访问频率”,客户端特征主要指IP、UserAgent等。使用IP比UserAgent更可靠,因为IP无法造假,UserAgent可随意伪造。