如何利用redis来进行分布式集群系统的限流设计

存储 存储软件 Redis 分布式
在很多高并发请求的情况下,我们经常需要对系统进行限流,而且需要对应用集群进行全局的限流,那么我们如何类实现呢。

在很多高并发请求的情况下,我们经常需要对系统进行限流,而且需要对应用集群进行全局的限流,那么我们如何类实现呢。

我们可以利用redis的缓存来进行实现,并且结合mysql数据库一起,先来看一个流程图。

这个就是一个典型的对http请求进行全局限流的流程图。

入口通过请求拦截器进行拦截(filter)。

来看代码片段,这个代码片段就是一个标准的filter(我们这里基于springboot来定义filter)

[[236564]]

我们需要做全局限流时,就需要用到redis了。在redis中,可以将限流配置定义为:

redis key:接口名称(或者url)_limit

 value:map,key:appid(业务id),value:限流大小

就做到配置的快速读取。

限流的配置定义完后,那么就需要定义限流的计数了。可以定义为:

redis key:接口名称(或者url)_count

 value:map,key:appid(业务id),value:计数值

一个好的限流设计,还需要能做到对限流配置的实时进行更改和动态的配置。那我们就来看如何实现呢?

下面就是一个限流配置的新增流程。我们可以将改新增配置定义成一个接口或者页面上的一个功能。就能做到配置的实时增加。

***我们再来看下配置的修改和限流配置的删除。

总结:

我们充分利用redis的缓存配置以及做了限流时,尽量不要影响到系统的整体性能。

责任编辑:武晓燕 来源: 博客园
相关推荐

2015-07-21 16:23:22

Node.js构建分布式

2023-07-11 10:24:00

分布式限流算法

2010-06-03 14:42:47

Hadoop分布式集群

2023-10-08 10:49:16

搜索系统分布式系统

2018-05-08 08:57:36

分布式存储集群

2019-06-19 15:40:06

分布式锁RedisJava

2018-06-19 09:35:51

分布式系统限流

2018-06-11 11:12:09

秒杀限流分布式

2019-09-05 09:02:45

消息系统缓存高可用

2022-04-07 17:13:09

缓存算法服务端

2020-07-03 13:29:08

Redis集群哈希槽

2024-04-08 11:04:03

2023-05-12 08:23:03

分布式系统网络

2023-08-21 19:10:34

Redis分布式

2014-05-08 14:38:26

tornadoredissession

2023-04-06 08:52:54

Sentinel分布式系统

2012-02-23 09:59:05

Hadoop分布式应用

2022-05-05 12:03:08

分布式系统设计

2022-04-14 10:24:27

分布式系统性能

2015-05-26 11:18:06

分布式系统可扩展性
点赞
收藏

51CTO技术栈公众号