1.实际场景中常用的限流策略:
1)nginx前端限流
按照一定的规则如账号、ip、系统调用逻辑等在Nginx层面做限流。
2)业务应用系统限流
1.客户端限流
2.服务端限流
3)数据库限流
红线区、力保数据库
2.常用的限流算法
1)漏桶算法
思路是强行限制传输速率,水(请求)入桶,桶中的水以一定速度出水,桶满则禁止访问;
2)令牌桶算法
思路是传输速率可以调节,令牌按照规定速度放到桶里,如果桶满则暂停放令牌,用户每次请求从桶里拿走一个令牌,如果没有令牌了,就停止访问。
3)基于redis功能的实现
通过用户访问的唯一标识字段生成一个为期60秒的键,这个用户每访问一次,将键值加1,在60秒内当键值增加到10的时候,就禁止访问服务接口。
网友评论