几种常见的限流算法

简介: 1、令牌桶算法令牌桶算法是比较常见的限流算法之一,大概描述如下:1)、所有的请求在处理之前都需要拿到一个可用的令牌才会被处理;2)、根据限流大小,设置按照一定的速率往桶里添加令牌;3)、桶设置最大的放置令牌限制,当桶满时、新添加的令牌就被丢弃活...

1、令牌桶算法
令牌桶算法是比较常见的限流算法之一,大概描述如下:
1)、所有的请求在处理之前都需要拿到一个可用的令牌才会被处理;
2)、根据限流大小,设置按照一定的速率往桶里添加令牌;
3)、桶设置最大的放置令牌限制,当桶满时、新添加的令牌就被丢弃活着拒绝;
4)、请求达到后首先要获取令牌桶中的令牌,拿着令牌才可以进行其他的业务逻辑,处理完业务逻辑之后,将令牌直接删除;
5)、令牌桶有最低限额,当桶中的令牌达到最低限额的时候,请求处理完之后将不会删除令牌,以此保证足够的限流;


img_1a4621db0d66b02e6185b7c520e512fc.png
image.png

2、漏桶算法
漏桶算法其实很简单,可以粗略的认为就是注水漏水过程,往桶中以一定速率流出水,以任意速率流入水,当水超过桶流量则丢弃,因为桶容量是不变的,保证了整体的速率


img_a858d26d76ba57caba9584c0dd79f2c5.png
image.png

上述业务逻辑参考张开涛的《亿级流量网站架构核心技术》一书中,在此推荐这本书

相关文章
|
1月前
|
缓存 算法 Java
限流算法 - 基本实现
限流算法 - 基本实现
23 0
|
1月前
|
数据采集 算法 双11
高并发的场景下,不能不说的限流算法
高并发的场景下,不能不说的限流算法
24 1
|
1月前
|
算法 NoSQL JavaScript
常见的限流算法-python版本
常见的限流算法-python版本
21 0
常见的限流算法-python版本
|
1月前
|
存储 算法 NoSQL
常见限流算法及其实现
在分布式系统中,随着业务量的增长,如何保护核心资源、防止系统过载、保证系统的稳定性成为了一个重要的问题。限流算法作为一种有效的流量控制手段,被广泛应用于各类系统中。本文将详细介绍四种常见的限流算法、两种常用的限流器工具,从原理、源码的角度进行分析。
114 0
|
3月前
|
算法 Go API
限流算法~
限流算法~
28 1
|
3月前
|
存储 算法 网络协议
服务治理之常用限流算法总结
服务治理之常用限流算法总结
48 0
服务治理之常用限流算法总结
|
4月前
|
缓存 算法 NoSQL
常见限流算法解读
常见限流算法解读
|
5月前
|
数据采集 缓存 算法
最常用的限流算法以及如何在http中间件中加入流控
最常用的限流算法以及如何在http中间件中加入流控
|
7月前
|
缓存 弹性计算 算法
Java高并发系统限流算法的应用
Java高并发系统限流算法的应用
63 0
|
7月前
|
算法 Java 程序员
【Java面试】传统行业跳互联网,一定要会这道题:在秒杀场景中,常用的限流算法有哪些?
一位在传统行业工作了 5 年的程序员。去一个互联网公司面试,被问到一个秒杀的场景题。因为之前完全没接触过分布式相关的项目,单单只是问了限流算法都没有回答不上来,于是向我来求助。
78 0