guava ratelimiter(Redisson限流器(RateLimiter))

本文目录
Redisson限流器(RateLimiter)
令牌桶配置(每分钟产生一个令牌)
令牌桶占用情况
分值:当时的时间
元素:随机数+申请的数量,二进制内容
剩余可用的令牌数
基于redis的分布式RateLimiter(限流)实现
系统需要对接某IM厂商rest接口,向客户端推送消息(以及其他IM业务)
该厂商对rest接口调用有频率限制:总rest调用9000次/30s;消息推送600次/30s
系统为分布式集群,需要控制整个分布式集群总的接口调用频率满足以上限制
上篇文章 《 Guava RateLimiter源码解析 》中介绍了Guava RateLimiter的用法及原理,但为什么不直接使用Guava RateLimiter?原因有二:
为什么说选用redis是合理的?
***隐藏网址***
首先创建令牌桶数据模型
reSync函数同样是为了解决令牌桶数据更新问题,在每次获取令牌之前调用,这里不多介绍
expires函数计算redis数据过期时间。同样的例子,某接口需要分别对每个用户做访问频率限制,假设系统中存在6W用户,则至多需要在redis中创建6W条数据,对于长期运行的系统,这个数字会只增不减,这对于redis来说也是一个不小的挑战(虽然示例中的数字相对较小)。为了减轻redis压力,需要对令牌桶数据做过期处理,对于使用频率不是很高的业务场景,可以及时清理。
putDefaultPermits用于生成默认令牌桶并存入redis
permits的getter setter方法实现了redis中令牌桶的获取及更新
now用于获取redis服务器的时间,这样便能保证分布式集群中各节点对数据处理的一致性
该函数与reserveAndGetWaitLength等同,只是为了避免并发问题而添加了同步锁
需要注意,这里与Guava RateLimiter不同的是, Guava中的返回是更新前的(上次请求计算的)nextFreeTicketMicros,本次请求通过为上次请求的预消费行为埋单而实现突发请求的处理;这里返回的是由于桶中令牌不足而需要真真切切等待的时间
尼尔机械纪元优化补丁解压在根目录了 进游戏后按快捷键后没有任何反应 到底具体该怎么操作才行呢
这补丁主要是解决1080p分辨率全屏模糊的问题,多数的玩家都是直接解压放入游戏目录,没有做任何更动。
虽然也能提帧,但是效果并不明显,现在只要更改这几个地方就能大幅增加帧数!
中低配的有福了!我这垃圾卡GTX770直接从原本30帧左右变稳定60帧了。官方的优化修正补丁还没出来前,大家先凑合著用吧~
最新版即可!
然后解压缩到游戏目录 先运行一次游戏然后关闭 让它自动生成FAR.ini档案
然后直接把FAR.ini里面的GlobalIlluminationWorkgroups=128 改成0
改完后保存 进游戏保证大幅提帧! 画面只有些微差异 全局光照效果OFF
关闭后画面上某些物件确实会变比较黑 但是开Low 《32》和Off 《0》帧数相差约8帧左右!
如果还是没办法满60帧 就按CTRL + SHIFT + BACKSPACE打开设定视窗
把Framerate Limiter项目下的Special K Framerate Tolerance滑动条拉到最"右边"
进游戏体会丝滑般的顺畅吧~
注:
1、画面左上方黄色字关闭方法 : CTRL + SHIFT + O
2、若要搭配画质补丁《SweetFX / ReShade》使用的话,需要把画质补丁里的dxgi.dll更名为ReShade64.dll即可同时生效!
3、某些人使用性能补丁后启动游戏跳出或错报的,有可能是之前已经使用画质补丁导致出错!可以试试上述方法更名后看是否能解决。
4、无法自动生成FAR.ini档的先确定是否使用的是最新版本,若能在游戏中CTRL + SHIFT + BACKSPACE开启设定视窗的话,直接改第二项Global Illumination下拉选单调成OFF即可!

更多文章:
在from子句中可以出现(如何在from 子句中嵌套查询下面的语句在access中出错!)
2026年10月11日 05:20
countif函数统计个数怎么用(countif函数怎么用 详解Excel中countif函数的使用方法)
2026年10月11日 03:30
正则匹配数字之前的字符(正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式)
2026年10月11日 03:00







