简介:

本文介绍几个Rust中实现了限流算法的crate。

背景:

最近工作需要实现限流算法。所以调研了一些限流算法。

最终认为令牌桶算法比较适合我们的业务场景。想着rust应该有现成的库可以复用,所以简单看了下。

几个可选的crate

1、leaky_bucket - Rust

基于tokio 异步的,实现了令牌桶算法,通过acquire接口来获取令牌。获取不到的时候会阻塞当前协程。

use leaky_bucket::RateLimiter;let limiter = RateLimiter::builder().initial(10).build();limiter.acquire(10).await;

2、ratelimit_meter - Rust

这个crate实现了GCRA 算法和漏桶算法

3、leaky_bucket_lite - Rust

和leaky_bucket差不多。不过更轻量级。特点是获取令牌的时候才会填桶、是惰性的。支持async和sync以及非线程安全的sync。

4、ratelimit - Rust

下载量最多的一个库。是多线程的。获取不到令牌会阻塞当前线程。

5、ratelimit_rs - Rust

很轻量级的一个库,不过并不是线程安全的,如果需要在多线程间使用,需要自己做好线程安全。这个库目前下载量还很小。

参考:

时间窗口、滑动窗口、漏桶、令牌桶

分布式服务限流实战,已经为你排好坑了_技术管理_dbaplus社群_InfoQ精选文章

分布式限流器

如何设计一个分布式限流器(distributed rate limiter) | Honly's Blog

分布式限流 - SegmentFault 思否

dubbo 限流策略

Dubbo之限流分析 - 掘金

dubbo/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter at be7dc7f397ce66b2240bc2534128e6ddddda9688 · apache/dubbo · GitHub

nginx限流

Nginx 的两种限流方式 - 开发者头条

Rust 限流算法crate调研相关推荐

  1. 接口限流算法:漏桶算法令牌桶算法

    工作中对外提供的API 接口设计都要考虑限流,如果不考虑限流,会成系统的连锁反应,轻者响应缓慢,重者系统宕机,整个业务线崩溃,如何应对这种情况呢,我们可以对请求进行引流或者直接拒绝等操作,保持系统的可 ...

  2. 搞懂限流算法这一篇就够了

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 TL;DR(too long don't read) 限流算法:计 ...

  3. 搞懂限流算法这一篇就够了 No.154

    点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废人 TL;DR(too long don't read) 限流算法:计数器.滑动窗口.漏桶.令牌桶 ...

  4. 亿级流量治理系列:常用的限流算法有哪些?

    前言 上篇文章<为什么大公司都要做流量治理?>跟大家聊了下做流量治理的真正目的是什么.如果你要开发一个流量治理的平台或者一个限流的框架,那么必不可少的就是要选择一种合适的限流算法.本篇文章 ...

  5. 简单介绍4种限流算法!(固定窗口计数器算法、滑动窗口计数器算法、漏桶算法、令牌桶算法)...

    作者:架构小菜 链接:https://www.jianshu.com/p/7987bf427b5b 简单介绍 4 种非常好理解并且容易实现的限流算法! 一.固定窗口计数器算法 规定我们单位时间处理的请 ...

  6. 面试必备:4种经典限流算法讲解

    最近,我们的业务系统引入了Guava的RateLimiter限流组件,它是基于令牌桶算法实现的,而令牌桶是非常经典的限流算法.本文将跟大家一起学习几种经典的限流算法. 公众号:捡田螺的小男孩 限流是什 ...

  7. 限流算法之漏桶算法、令牌桶算法

    限流 每个API接口都是有访问上限的,当访问频率或者并发量超过其承受范围时候,我们就必须考虑限流来保证接口的可用性或者降级可用性.即接口也需要安装上保险丝,以防止非预期的请求对系统压力过大而引起的系统 ...

  8. Java 实现滑动时间窗口限流算法,你见过吗?

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | dijia478 来源 | https://w ...

  9. 接口限流算法:漏桶算法amp;令牌桶算法

    转载自 接口限流算法:漏桶算法&令牌桶算法 背景 每一个对外提供的API接口都是需要做流量控制的,不然会导致系统直接崩溃.很简单的例子,和保险丝的原理一样,如果用电符合超载就会烧断保险丝断掉电 ...

  10. 滑动窗口限流 java_Spring Boot 的接口限流算法优缺点深度分析

    点击上方蓝色字体,选择"标星公众号" 优质文章,第一时间送达 上一篇:这300G的Java资料是我师傅当年给我的,免费分享给大家(已修复) 下一篇:昨天分享资料不小心把百度网盘深处 ...

最新文章

  1. 基于android的条码识别技术,基于Android手机的条码识别系统研究
  2. Linux下 /dev/null 21 相关知识说明
  3. 数据结构 - 队列(图解+源码)
  4. brainfuck 在线_酒店在线声誉持久战 重视社媒舆论 保持品牌一致性
  5. mysql在可视化软件navicat中如何解决中文乱码问题
  6. Python name ‘basestring‘ is not defined
  7. 成交量与股价关系的深度剖析 (一)
  8. browserCaps与浏览器功能设置
  9. IOS 学习笔记(2) 视图UINavigationController
  10. php存sqlite图片,SQLite数据库如何存储图片/语音
  11. 硬盘分区变为RAW文件系统后的解决办法
  12. php悲观锁怎么做,mysql悲观锁怎么实现?
  13. win10c语言乱码修复方法,“字体库异常、电脑乱码的解决方案”的解决方案
  14. 上海市建筑工程资料管理软件
  15. linux系统编程实训总结,linux实训总结与体会
  16. NLP聊天机器人笔记
  17. scala面向对象基础---类继承和特质
  18. Excel的查找和引用函数:VLOOKUP、OFFSET、MATCH、INDEX、INDIRECT
  19. Web——软件开发实践
  20. c++ 连接mysql数据库

热门文章

  1. win10网络计算机显示不全,win10系统局域网显示计算机设备不完全的解决方法
  2. 神经网络中的logits是什么意思
  3. 京东商品详情数据接口(APP端,H5端),实时了解商品价格走势,接口代码教程
  4. KEIL平台下新建华大HC32F460单片机工程笔记
  5. android 图片3d,Android实现3D图片浏览效果示例
  6. 自动化装配流水线转载运输机,3D图纸。图纸stp格式1g大小零件齐全
  7. 面试官:说说如何打破或违反双亲委派!
  8. 赵小楼《天道》《遥远的救世主》解读(71)客观逻辑与离相的渊源
  9. HTML+CSS练习——实现京东登录静态页面
  10. 2018年UI设计趋势概览