当前位置: 首页 > wzjs >正文

徐州网站建设开发小璇seo优化网站

徐州网站建设开发,小璇seo优化网站,深圳创建公司注意事项,wordpress如何调用作品集限流尽可能在满足需求的情况下越简单越好! 1、基于Redsi的increment方法实现固定窗口限流 Redis的increment方法保证并发线程安全窗口尽可能越小越好(太大可能某一小段时间就打满请求剩下的都拿不到令牌了)这个原理其实就是用当前时间戳然后除窗口大小 在这个窗口大…

限流尽可能在满足需求的情况下越简单越好!

1、基于Redsi的increment方法实现固定窗口限流

  • Redis的increment方法保证并发线程安全
  • 窗口尽可能越小越好(太大可能某一小段时间就打满请求剩下的都拿不到令牌了)
  • 这个原理其实就是用当前时间戳然后除窗口大小 在这个窗口大小的时间内 key都一样
public class RedisRateLimiter {private final StringRedisTemplate redisTemplate;// 命令前缀private final String key;private final int rate;private final int window;public RedisRateLimiter(StringRedisTemplate redisTemplate, String key, int rate,int window) {this.redisTemplate = redisTemplate;this.key = key;this.rate = rate;Assert.isTrue(window > 0 && window <= 60,"窗口只支持分钟内");this.window = window;}// 检查并获取令牌public boolean acquire() {String currentKey = key + "_" + (DateUtil.currentSeconds() / window);Long currentCount = redisTemplate.opsForValue().increment(currentKey);redisTemplate.expire(currentKey, window, TimeUnit.SECONDS);if (currentCount > rate){return false;}return true;}public void acquireSleep() {int count = 0;while (!acquire()){ThreadUtil.sleep(1,TimeUnit.SECONDS);count++;log.info("RedisRateLimiter[{}] try acquire sleep {}",key,count);}}public boolean acquireSleep(int waitSecond) {int count = 0;while (!acquire()){if (count >= waitSecond){return false;}ThreadUtil.sleep(1,TimeUnit.SECONDS);count++;log.info("RedisRateLimiter[{}] try acquire sleep {}",key,count);}return true;}}

使用案例:

下面这个任务是实时请求评论和子评论接口,但是两个接口每分钟不能超过100,所以我们使用限流限制10秒不超过18即可也能满足需求。

public class ScCommentRealTimeSyncTask  {private RedisRateLimiter rateLimiter;@PostConstructpublic void init(){rateLimiter = newRedisRateLimiter(stringRedisTemplate,KAOLA_COMMENT_RATE_KEY,16,10);}@Scheduled(fixedDelay = 3000)public void task(){// 请求接口1rateLimiter.acquireSleep();request1();//请求接口2rateLimiter.acquireSleep();request2();}}

http://www.dtcms.com/wzjs/423921.html

相关文章:

  • 双鸭山网站建设企业百度合伙人答题兼职赚钱
  • 免费建网站代理南宁seo推广
  • 做影视网站违法莫seo专员是什么
  • 建设工程网上质检备案网站电子商务主要学什么
  • 建设常规的网站报价是多少钱清远今日头条新闻
  • 如何让广域网访问利用公网ip和本地服务器建设的网站网站开发费用
  • 产品推广的网站怎么做做营销型网站的公司
  • 淮南市城乡建设局网站手机百度网页版登录入口
  • 西安网站制作设计找哪家郑州专业seo首选
  • 大牌网站设计seo优化排名价格
  • 买了域名之后如何做网站郑州粒米seo外包
  • 寺庙做网站免费推广网站注册入口
  • wordpress的小程序太原seo软件
  • 东莞东坑网站建设中山seo推广优化
  • 锦州网站建设多少钱打开浏览器直接进入网站
  • 地产网站开发网页在线生成
  • 安丘市住房和城乡建设局网站免费推广网站有哪些
  • 如何查网站空间百度推广竞价开户
  • 中国手机网站大全网络营销的基本内容有哪些
  • 天津市建设工程定额管理站网站成品短视频网站源码搭建
  • 学校网站建设及管理制度神马网站快速排名软件
  • 大气企业网站欣赏南京seo招聘
  • 电源网站模版seoul是哪个城市
  • 江门专业网站建设系统地推的60种方法
  • 小程序制作流程及合同百度seo排名优化公司哪家好
  • 和硕网站建设外贸网络推广经验
  • 三亚做网站cba最新积分榜
  • 做云教育集群网站网络营销的50种方法
  • 早期做网站 如何推广辽宁好的百度seo公司
  • wordpress后台设置中文pc优化工具