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

网站建设制作软件软文网站大全

网站建设制作软件,软文网站大全,河南建设工程信息网一体化,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/374075.html

相关文章:

  • 哪个网站主做生鲜批发百度指数如何分析数据
  • 网站建设信息公开和解读回应seo推广优化工具
  • 建设区服务网站百度指数查询官网入口登录
  • 古镇企业网站建设名词解释seo
  • 做网站的岗位营销型网站分为哪几种
  • 实用设计网站推荐百度应用市场
  • 如何注册网站域名备案搭建网站工具
  • 中山网站建设是什么营销软件网站
  • 推广公司的网站chatgpt 链接
  • 网站备案单位的联系方式小程序推广的十种方式
  • 做游戏出租的网站好国内做seo最好的公司
  • e2ee网站开发框架2.23先行版seo兼职平台
  • 尖草坪网站建设优化推广网站排名
  • 铜川免费做网站公司如何做网销
  • 是普通网站地图好还是rss地图好一点搜索引擎都有哪些
  • 专业网站制作团队外链生成
  • wordpress响应免费主题seo详细教程
  • 色流网站如何做足球比赛今日最新推荐
  • 北京行业网站建设360安全网址
  • 南山网站建设深圳信科青岛seo软件
  • 农业产品如何建网站交换链接名词解释
  • 设计教程网站2021年搜索引擎排名
  • 温州免费做网站行业关键词搜索排名
  • wordpress更改了数据库密码域名seo站长工具
  • 换域名对网站的影响百度域名收录
  • 医院网站做品牌推广需要哪些免费发布推广的网站
  • 使用c 语言建设网站优点网络宣传推广方案范文
  • 网站如何做淘客百度下载安装2021最新版
  • 珠海的门户网站有哪些ciliba最佳磁力搜索引擎
  • 网站如何不让百度抓取深圳网站营销seo电话