高并发系统限流-漏桶算法和令牌桶算法

744 阅读1分钟

一、问题描述

变天A君突然发现自己接口请求量涨到10倍。触发连锁反应导致系统崩溃

二、常用限流算法

常用的限流算法有两种:漏桶算法和令牌桶算法 漏桶算法思路很简单,当水流如速度过大会直接溢出。可以看出漏桶算法强行限制数据传输速率。 令牌桶算法是系统已一个恒定的速度往桶里放入令牌。如果请求要被处理。从桶里获取一个令牌。没有可取的时候,拒绝服务 在高并发系统时。有三把利器保护系统:缓存、降级和限速

应用级限流

线不是限流 分布式限流最关键要将限流服务做成原子化。解决方案可以使用redis+lua或者nginx+lua技术实现 首先我们使用redis+lua 实现时间窗口内某个请求请求数限流。实现该功能后可以改