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

银川市网站建设_网站建设公司_Banner设计_seo优化

专门做吃播的网站,邯郸平台公司,网站建设价格是多少,网站推广需要多少钱LUA脚本语言是C开发的#xff0c;类似存储过程,是为了实现完整的原子性操作#xff0c;可以用来补充redis弱事务的缺点. 1、LUA脚本的好处 2、Lua脚本限流实战 支持分布式 import org.springframework.core.io.ClassPathResource; import org.springframework.data.redis…LUA脚本语言是C开发的类似存储过程,是为了实现完整的原子性操作可以用来补充redis弱事务的缺点. 1、LUA脚本的好处 2、Lua脚本限流实战 支持分布式 import org.springframework.core.io.ClassPathResource; import org.springframework.data.redis.core.script.DefaultRedisScript; import org.springframework.scripting.support.ResourceScriptSource; import org.springframework.stereotype.Service; import redis.clients.jedis.Jedis;/*** 分布式限流的服务类*/ Service public class IsAcquire {//引入一个Redis的Lua脚本的支持private DefaultRedisScriptLong getRedisScript;//判断限流方法---类似于RateLimiterpublic boolean acquire(String limitKey,int limit,int expire) throws Exception{//连接RedisJedis jedis new Jedis(127.0.0.1,6379);getRedisScript new DefaultRedisScript();getRedisScript.setResultType(Long.class);//脚本执行返回值 longgetRedisScript.setScriptSource(new ResourceScriptSource(new ClassPathResource(rateLimiter.lua)));Long result (Long)jedis.eval(getRedisScript.getScriptAsString(),1,limitKey,String.valueOf(limit),String.valueOf(expire));if(result 0){return false;}return true;} }import com.google.common.util.concurrent.RateLimiter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController;/*** 类说明接口类抢购接口* http请求控制类 Contoller*/ RestController public class Controller {AutowiredIsAcquire isAcquire;//手下的分布式限流//final RateLimiter rateLimiter RateLimiter.create(5); //guava引入的令牌桶限流非分布式单机//秒杀接口RequestMapping(/order)public String killProduct(RequestParam(required true) String name) throws Exception{//rateLimiter.tryAcquire(1); //调用if(isAcquire.acquire(iphone,10,60)){//60秒只能进行10次System.out.println(业务成功);return 恭喜(name)抢到iphone!;}else{System.out.println(-----------业务被限流);return 对不起你被限流了!;}} }rateLimiter.lua脚本如下 --java端送入三个参数1个key,2个param string --limitKey(redi中key的值) local key KEYS[1]; --limit(次数) local times ARGV[1]; --expire(秒S) local expire ARGV[2]; --对key-value中的 value 1的操作 返回一个结果local afterval redis.call(incr,key); if afterval 1 then --第一次redis.call(expire,key,tonumber(expire) ) --失效时间(1S) TLL 1Sreturn 1; --第一次不会进行限制 end --不是第一次进行判断 if afterval tonumber(times) then--限制了return 0; endreturn 1;以上简单的计数器的方式就是一种固定窗口的算法可以实现对单个接口的限流. 3、限流算法 固定窗口算法的问题 解决方案改为滑动窗口避免固定窗口的临界问题 滑动窗口演示地址 https://media.pearsoncmg.com/aw/ecs_kurose_compnetwork_7/cw/content/interactiveanimations/selective-repeat-protocol/index.html漏桶算法 漏桶令牌的算法的缺点就是时间复杂度O(N)不适用于大并发的请求 滑动窗口的缺点是需要双方先定好协议
http://www.ihoyoo.com/news/85717.html

相关文章:

  • 九洲建设集团网站怎样申请做自己的网站
  • 搜集关键词的网站营销管理培训课程
  • 福田网站建设课程考试策划推广公司
  • 南昌建设医院网站wordpress超强主题
  • 网站建设的基本思路招生网站建设策划方案
  • 企业网站模板建站流程建行企业银行官网
  • .net网站开发项目建设部网站业绩补录
  • 网站制作appdocker wordpress 备份
  • 简述什么是网站wordpress怎么加属性
  • 国内品牌备案建站做房产抵押网站需要什么手续
  • 网站建设怎么更改图片广州各区正在进一步优化以下措施
  • 如何注册网站域名泰兴网站推广
  • vs网站开发需要的组件3免费建站网站
  • 河南省百城建设提质工程网站搭建网页代码流程
  • 中山做网站的电台 主题 wordpress
  • 陵水网站建设价格wordpress文章关键词在哪里
  • 企业在线查询宿迁seo优化
  • 成都商城网站制作夫唯老师seo
  • wordpress 云播插件seo优化一般包括哪些内容()
  • 百度公司电话是多少seo初级入门教程
  • 周村网站制作哪家好网页设计与制作教程电商
  • 树莓派用来做网站wordpress拷贝
  • 有关小城镇建设网站优化方案化学2023版电子版
  • 网站 推广商系统 设计做任务领取礼品的网站
  • 中文电子商务网站模板网站排名
  • 东莞网站制作智能 乐云践新大学培训中心网站建设
  • 克拉玛依建设局官方网站怎么做qq刷赞等网站
  • 电子商务网站建设策略win7最好的优化软件
  • 一家专门做瓷砖特卖的网站东莞视频拍摄公司
  • 蚌埠建设网站攻击网站步骤