分布式 令牌桶算法 总结
前言
相关系列
- 《分布式 & 目录》
- 《分布式 & 令牌桶算法 & 总结》
- 《分布式 & 令牌桶算法 & 问题》
参考文献
- 《【算法】令牌桶算法》
概述
简介
TBA @ Token Bucket Algorithm @ 令牌桶算法是一种流行于网络通信领域的流量控制/频率限制算法。令牌桶算法的核心原理是通过一个概念上的“桶”来控制请求的访问频率,这个桶中会保存一定数量的“令牌”,每个请求只有获得令牌后才能正式访问系统,否则就只能等待/放弃。而由于桶中的令牌会以固定的频率生成,因此令牌桶算法就可以达到持续控制请求访问数量&频率的效果。此外由于桶可以按配置预存一定数量的令牌,因此在日常请求访问频率 < 令牌产生频率的情况下,令牌桶算法还可以支持一定程度流量高/突发,这是另一种限流算法“漏桶”所不具备的能力。
场景
- 限制网络带宽:控制访问流量;
- 限制API频率:限制API调用频率;
- 功能分级:为不同级别的用户提供不同频率的服务;
- 任务调度:限制任务执行频率以避免资源争用。
原理

概念
- 令牌桶:用于存放指定数量令牌的虚拟容器,通常使用Redis一类的中间件实现;
- 令牌填充频率:系统向令牌桶中生成/置入令牌的频率,一般是系统平均QPS/s;
- 令牌消耗:每当请求到达时从桶中移除一个令牌以支持其访问系统。如果桶中没有令牌,那么请求将被延迟/丢弃。
流程
- 系统持续以指定频率产生指定数量的令牌至于令牌桶中,如果令牌桶已满则丢弃;
- 客户端访问系统,在网关被拦截。随后网关会判断当前请求是否免限流,是则直接访问;
- 如果当前请求不免限流,则网关会从尝试从令牌桶中获取令牌。如果令牌不存在则拒绝请求;否则允许请求按预期目的访问系统。
相关文章:
分布式 令牌桶算法 总结
前言 相关系列 《分布式 & 目录》《分布式 & 令牌桶算法 & 总结》《分布式 & 令牌桶算法 & 问题》 参考文献 《【算法】令牌桶算法》 概述 简介 TBA Token Bucket Algorithm 令牌桶算法是一种流行于网络通信领域的流量控制/频率限制算法。令牌…...
FFMPEG视频转图片
用FFMPEG视频转图片,并且for循环 import os import subprocess# 输入文件夹和输出文件夹路径 input_folder r"I:\xxx" output_base_folder r"D:\xxx\YOLO\data\video" output_subfolder_name "20240609"# 创建输出子文件夹 output…...
docker入门实践---虚拟机环境配置
文章目录 1.检查内核版本2.确定centos7可以上网3.关闭防火墙4.关闭防火墙5.更换阿里云6.安装gcc7.设置镜像仓库(阿里云)8更新软件包9.安装docket-ce10.启动docker11.普通用户权限设置 1.检查内核版本 2.确定centos7可以上网 3.关闭防火墙 下面的这个表示…...
java要防止重复序列化的问题JSON.toJSONString转义问题
要防止重复序列化的问题JSON.toJSONString(entity) 20241213 10:29 背景: 我在设计业务实现echart图标渲染,业务接口实时性查询耗时很长,为了提高系统可用性和用户体验,采用中间表的方案——即在中间表中存储大JSON。 但是在自测…...
TS的类型守卫、类型约束实践
类型守卫 // 基础类型判断 const arr [30, 50] console.log(typeof arr) // object const set new Set(arr) console.log(typeof set) // object const map new Map() console.log(typeof map) // objectclass Customer {constructor() {}buy(method:string) {console.log(…...
文件转曲,限制PDF文件编辑的最佳方案!
随着数字化进程的推进,PDF文件凭借其多样化的功能和优越的兼容性已经被广泛使用,成为了现代文档交流和存储的重要工具,满足了不同用户和行业的需求。 虽然PDF格式文件的功能很多,常见的比如阅读、编辑、加密、转换、还可用于印刷…...
MySQL系列之数据授权(安全)
导览 前言Q:如何对MySQL数据库进行授权管理一、MySQL的“特权”1. 权限级别2. 权限清单 二、授权操作1. 查看权限2. 分配权限3. 回收权限 结语精彩回放 前言 看过博主上一篇的盆友,可以Get到一个知识点:数据授权(eg:g…...
用 Python 实现经典的 2048 游戏:一步步带你打造属于你的小游戏!
用 Python 实现经典的 2048 游戏:一步步带你打造属于你的小游戏!(结尾附完整代码) 简介 2048 是一个简单而又令人上瘾的数字拼图游戏。玩家通过滑动方块使相同数字的方块合并,目标是创造出数字 2048!在这篇…...
Vue vs. React:两大前端框架的深度对比与分析(一)
前言 在当今快速发展的前端领域中,Vue和React作为两个备受瞩目的前端框架,已经成为许多开发者的首选。这两个框架凭借其出色的设计和强大的功能,在构建现代化、高效性能的Web应用方面扮演着重要角色。 Vue和React都以其独特的特点吸引了众多开…...
React 进阶深入理解核心概念与高阶实践
在上一节中,我们学习了 React 的基础知识,包括组件、状态管理和基本操作。接下来,我们将进一步探索 React 的高级功能和实战技巧,例如 组件间通信、高阶组件、Context API、React Router 等。这些内容将帮助你构建更复杂、功能更丰…...
Linux shell的七大功能 ---自动补齐、管道机制、别名
1、自动补齐---TAB 输入命令的前几个字符,按下tab键,会自动补齐完整的字符,若有多个命令、文件或目录的前几个字符相同,按下tab将会全部列举出来 2、管道机制---| 例如:ls -- help |more 将有关ls的帮助内容传递给“|…...
XML 在线格式化 - 加菲工具
XML 在线格式化 打开网站 加菲工具 选择“XML 在线格式化” 输入XML,点击左上角的“格式化”按钮 得到格式化后的结果...
java_多态的应用
多态数组 应用实例:现有一个继承结构如下:要求创建 1 个 Person 对象、2 个 Student 对象和 2 个 Teacher 对象, 统一放在数组中,并调用每个对象 代码 Person类 package com.hspedu.poly_.polyarr_;import javax.swing.*;/*** author:寰愬悏瓒…...
Python+OpenCV系列:模版匹配
文章目录 1. 模板匹配基本原理2. cv2.matchTemplate() 函数函数原型: 3. 模板匹配步骤4. 单目标模板匹配示例5. 多目标模板匹配多目标模板匹配示例代码解析: 6. 多模板匹配多模板匹配示例代码解析 7. 总结 模板匹配是一种在图像中寻找模板的位置的方法。…...
【从零开始入门unity游戏开发之——C#篇10】循环结构——while、do-while、for、foreach的使用
文章目录 一、while 循环1、语法:2、示例: 二、 do-while 循环1、语法:2、示例: 三、for 循环1、语法:2、示例: 四、foreach 循环1、语法:2、示例: 五、总结对比六、注意事项七、使用…...
Spring Boot项目使用虚拟线程
Spring Boot项目启用虚拟线程 开始基本使用先写一个测试方法通过springboot配置项开启虚拟线程 目前存在的问题 开始 虚拟线程正式发布是在JDK21,对于Spring Boot版本选择3以上。 基本使用 关于虚拟线程本身的使用,之前已经介绍过。这里要说的是直接将…...
实现SpringBoot项目嵌入其他项目
很多时候我们需要在项目里面嵌入其他项目或者被其他项目嵌入,如我们开发一个开源项目b,用户需要在自己的项目a嵌入b项目,使用b项目的功能,而且要实现a项目工作最小化,最好实现引入即用。 1.定义b项目的自定义配置 …...
朗致面试---IOS/安卓/Java/架构师
朗致面试---IOS/安卓/Java/架构师 一、面试概况二、总结三、算法题目参考答案 一、面试概况 一共三轮面试: 第一轮是逻辑行测,25道题目,类似于公务员考试题目,要求90分钟内完成。第二轮是技术面试,主要是做一些数据结…...
数字信号处理:FIR滤波器
FIR(Finite Impulse Response,有限脉冲响应)滤波器是一种数字滤波器,其输出信号是输入信号的加权线性组合。FIR滤波器以其线性相位特性和易于设计的优势,广泛应用于信号处理、通信、音频处理等领域。 FIR滤波器的特点…...
鲲鹏麒麟安装Kafka-v1.1.1
因项目需要在鲲鹏麒麟服务器上安装Kafka v1.1.1,因此这里将安装配置过程记录下来。 环境说明 # 查看系统相关详细信息 [roottest kafka_2.12-1.1.1]# uname -a Linux test.novalocal 4.19.148 #1 SMP Mon Oct 5 22:04:46 EDT 2020 aarch64 aarch64 aarch64 GNU/Li…...
解析Android Studio中文适配困局:社区语言包的技术架构与部署实践
解析Android Studio中文适配困局:社区语言包的技术架构与部署实践 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本) 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 在A…...
收藏!小白/程序员转行Agent必看,4步理清学习思路,轻松具备求职竞争力
如今,AI领域的风口早已到来,Agent作为当下最热门的赛道之一,掌握其相关技能,无疑能让你在就业市场中脱颖而出,成为企业争抢的核心人才。无论是刚入门的编程小白,还是想转型的资深程序员,Agent都…...
UABEA:解锁Unity资源编辑新维度的跨平台工具箱
UABEA:解锁Unity资源编辑新维度的跨平台工具箱 【免费下载链接】UABEA c# uabe for newer versions of unity 项目地址: https://gitcode.com/gh_mirrors/ua/UABEA 你是否曾想过深入Unity游戏内部,查看、编辑甚至重构其中的纹理、音频、字体等各类…...
EB Garamond 12:终极免费复古字体完整使用指南与安装教程
EB Garamond 12:终极免费复古字体完整使用指南与安装教程 【免费下载链接】EBGaramond12 项目地址: https://gitcode.com/gh_mirrors/eb/EBGaramond12 EB Garamond 12是一款基于16世纪经典Garamond字体设计的开源免费字体,完美复刻文艺复兴时期的…...
CLIP ViT-H-14效果展示:艺术风格迁移前后图像在特征空间的距离变化
CLIP ViT-H-14效果展示:艺术风格迁移前后图像在特征空间的距离变化 你有没有想过,当一幅梵高的《星空》被AI“理解”成毕加索的立体派风格时,在AI的“大脑”里,这两幅画到底有多“像”? 今天,我们就来用C…...
解锁音频频域密码:Spek声学频谱分析工具的全场景应用指南
解锁音频频域密码:Spek声学频谱分析工具的全场景应用指南 【免费下载链接】spek Acoustic spectrum analyser 项目地址: https://gitcode.com/gh_mirrors/sp/spek 在数字音频处理领域,准确理解信号的频率特性是解决音质问题、优化音频体验的关键。…...
终极指南:如何用VideoSrt在5分钟内为视频自动生成字幕
终极指南:如何用VideoSrt在5分钟内为视频自动生成字幕 【免费下载链接】video-srt-windows 这是一个可以识别视频语音自动生成字幕SRT文件的开源 Windows-GUI 软件工具。 项目地址: https://gitcode.com/gh_mirrors/vi/video-srt-windows 还在为手动添加字幕…...
智慧树自动化学习助手:技术实现与最佳实践指南
智慧树自动化学习助手:技术实现与最佳实践指南 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树在线学习平台作为国内主流的教育资源平台,…...
开源阅读鸿蒙版完整指南:打造你的专属数字图书馆
开源阅读鸿蒙版完整指南:打造你的专属数字图书馆 【免费下载链接】legado-Harmony 开源阅读鸿蒙版仓库 项目地址: https://gitcode.com/gh_mirrors/le/legado-Harmony 开源阅读鸿蒙版是一款专为鸿蒙系统用户设计的免费开源电子书阅读器,它彻底改变…...
终极指南:如何无需Steam客户端轻松下载创意工坊模组
终极指南:如何无需Steam客户端轻松下载创意工坊模组 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否曾因Steam客户端无法访问创意工坊而烦恼?或者…...
