一、背景
小明今天上班,看到最近开的促销活动,发现后台日志有很多重复调用的请求数据,而且还是同个用户的,这个人也抢了很多活动商品,导致其他用户都没法购买到。很显热,活动接口被刷爆了,马上跟大佬商量,十分慌张,大佬说,要加一下限流,做一下防刷处理,缓解一下后台服务。但是,刚入职场的小明,还不了解限流是个啥,无从下手。
所以,今天给初入职场的同学们,介绍一下什么是接口限流?为什么要接口限流?有哪些具体落地的方案?
二、什么是接口限流
接口限流,是指通过控制请求的速率或次数来达到保护服务的目的,在微服务中,我们通常会将它和熔断、降级搭配在一起使用,来避免瞬时的大量请求对系统造成负荷,来达到保护服务平稳运行的目的,也是接口防刷的一个手段之一。
目前,限流的算法也很多种,包括:计数器、固定窗口计数器、滑动窗口计数器、漏桶算法、令牌桶算法。对应的落地方案有:本地缓存实现,第三方缓存实现、Nginx限流、网关限流、Guava的令牌桶RateLimiter、微服务Alibaba的
Sentinel中间件。接下来给大家介绍一下各种算法和落