麒麟v10 上部署 TiDB v5.1.2 生产环境优化实践
1048
2023-05-07
如何利用redis来进行分布式集群系统的限流设计
在很多高并发请求的情况下,我们经常需要对系统进行限流,而且需要对应用集群进行全局的限流,那么我们如何类实现呢。
我们可以利用redis的缓存来进行实现,并且结合mysql数据库一起,先来看一个流程图。
入口通过请求***进行拦截(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的缓存配置以及做了限流时,尽量不要影响到系统的整体性能。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。