如何利用redis来进行分布式集群系统的限流设计
2023-03-14 22:24:24 时间
在很多高并发请求的情况下,我们经常需要对系统进行限流,而且需要对应用集群进行全局的限流,那么我们如何类实现呢。
我们可以利用redis的缓存来进行实现,并且结合mysql数据库一起,先来看一个流程图。
这个就是一个典型的对http请求进行全局限流的流程图。
入口通过请求拦截器进行拦截(filter)。
来看代码片段,这个代码片段就是一个标准的filter(我们这里基于springboot来定义filter)
我们需要做全局限流时,就需要用到redis了。在redis中,可以将限流配置定义为:
redis key:接口名称(或者url)_limit
value:map,key:appid(业务id),value:限流大小
就做到配置的快速读取。
限流的配置定义完后,那么就需要定义限流的计数了。可以定义为:
redis key:接口名称(或者url)_count
value:map,key:appid(业务id),value:计数值
一个好的限流设计,还需要能做到对限流配置的实时进行更改和动态的配置。那我们就来看如何实现呢?
下面就是一个限流配置的新增流程。我们可以将改新增配置定义成一个接口或者页面上的一个功能。就能做到配置的实时增加。
***我们再来看下配置的修改和限流配置的删除。
总结:
我们充分利用redis的缓存配置以及做了限流时,尽量不要影响到系统的整体性能。
相关文章
- 八个可以提高数据科学工作效率并节省宝贵时间的Python库
- localStorage和sessionStorage总结以及区别
- Go:基于 MongoDB 构建 REST API -Fiber 版
- 聊聊 Undermoo -为 Memory Broker 设置备份
- 原始数据都一样,为啥Pyecharts做出来的图一个是彩色的,另一个是黑白的?
- Undermoon - 基于 Redis Cluster Protocol 的自管理 Redis 集群系统
- Rust 写的 Undermoon Redis 集群-Chunk
- 前端程序员必须知道的 Web 漏洞,快来看看
- 阿里UC播放技术负责人徐慧书:音视频秒播技术优化
- 一文搞懂CPU如何控制I/O设备
- Hbase连接与数据处理
- Hive和Hbase集成及互相操作
- TiDB 中标杭州银行核心系统数据库项目
- 跟着NC学宏基因分析流程-冠状病毒与人类微生物组之间相互作用
- GEO数据挖掘——快速将探针ID转化为Gene Symol
- GreenPlum数据库日常维护
- 漫画大数据:为啥我把 HDFS 文件权限都改成 777 了还是删不掉?
- 大数据技术周报(2022年11月第一期)
- SQL查询优化
- MySQL主从复制