NodeJS 频繁请求服务器限速工具
- 示范
const rate_limit=require('./RateLimitUtil')
//配置
rate_limit.config(5)
//执行
setInterval(function () {if(rate_limit.isExecutable()){console.log('现在的QPS是'+rate_limit.getQPS()+',允许执行')//......你的业务逻辑}else{console.log('现在的QPS是'+rate_limit.getQPS()+'拒绝执行')}
},100)
- 限速器代码
let conf={qps:1000
}
let exeLog=new Array()
let fresh=function(){let now=new Date().getTime()now=now-now%1000let top_limit=now+1000let newExeLog=new Array()for(let i=0;i<exeLog.length;i++){let item=exeLog[i]if(!(item>top_limit||item<now)){newExeLog.push(item)}}exeLog=newExeLog
}
/*
是否可执行
true 没有超速
false 即将超速不允许执行*/
let isExecutable=function () {fresh()if (getQPS()<conf.qps){exeLog.push(new Date().getTime())return true}return false
}
/*
获取现在的QPS*/
let getQPS=function(){return exeLog.length
}
/*
重置*/
let reset=function(){exeLog=new Array()
}
/*
配置qps*/
let config=function (qps) {conf.qps=qps
}
module.exports={config:config,isExecutable:isExecutable,getQPS:getQPS,reset:reset
}
NodeJS 频繁请求服务器限速工具相关推荐
- NodeJs本地搭建服务器,模拟接口请求,获取json数据
最近在学习Node.js,虽然就感觉学了点皮毛,感觉这个语言还不错,并且也会一步步慢慢的学着的,这里实现下NodeJs本地搭建服务器,模拟接口请求,获取json数据. 具体的使用我就不写了,这个博客写 ...
- nodejs 调用微服务器_无服务器NodeJS:构建下一个微服务的快速,廉价方法
nodejs 调用微服务器 by Filipe Tavares 由Filipe Tavares 无服务器NodeJS:构建下一个微服务的快速,廉价方法 (Serverless NodeJS: the ...
- js处理请求最多的服务器,vue.js 请求服务器
理解vue ssr原理,自己搭建简单的ssr框架 先附上demo地址:https://github.com/wmui/vue-s... 第一步:编写entry-client.js和entry-serv ...
- 微信小程序 解决请求服务器手机预览请求不到数据的方法
微信小程序 解决请求服务器手机预览请求不到数据的方法 微信小程序的文档中明确说明了所有的请求是必须使用https的,以没用过https,由于小程序,不得不接触到https,研究了好长时间把tomcat ...
- java 向nodejs 发送请求简单案例
java 向nodejs 发送请求简单案例 最近在做nodejs的东西,一直不明白java如何与nodejs建立连接,下面写了一个简单demo: nodejs端: var http = requir ...
- 客户端显示服务器图片不显示,客户端请求服务器图片不显示
客户端请求服务器图片不显示 内容精选 换一换 已成功登录鲲鹏代码迁移工具.只有管理员用户(portadmin)可以执行生成CSR文件.导入web服务器证书.重启和更换工作密钥的操作.普通用户只能查看w ...
- websocket 学习--简单使用,nodejs搭建websocket服务器,到模拟股票,到实现聊天室
websocket简介: WebSocket协议是 HTML5 开始提供的一种基于TCP的一种新的全双工通讯的网络通讯协议.它允许服务器主动发送信息给客户端. 和http协议的不同?? HTTP 协议 ...
- TCP和UDP服务器性能测试工具
TCP和UDP服务器性能测试工具 本文涉及工具不是本人开发,在网上免费下载的工具 在编写一个网络服务的时候都比较关心这个服务能达到多少并发连接,而在这连接的基础上又能达到一个怎样的交互能力.编写服务已 ...
- nodejs创建http服务器
之前有简单介绍nodejs的一篇文章(http://www.cnblogs.com/fangsmile/p/6226044.html) HTTP服务器 Node内建有一个模块,利用它可以很容易创建基本 ...
最新文章
- 反编译工具jad简单用法
- 终极解决方案:Emacs+Slime+Lisp启动错误:Polling /tmp/slime.50
- 正则表达式替换一位数字,并保证其后面不含有其他数字(我用来替换第一页页码)...
- crowd counting_[crowd_counting]-MANet_arxiv1901
- 眼下发展最迅猛的十家网络安全公司
- WTK6900B02语音识别模块,声控模块,语音交互模块,语音识别模块方案-深圳唯创知音电子有限公司...
- 中国芯的ISSCC/JSSC之路
- 疫情在家办公,向日葵突然卡死,无法远程电脑的解决办法(局域网远程强制重启windows)
- 用C实现五子棋对战——超详细教程
- 华为网络,模拟器ensp的基本使用
- zigbee三种组网形式及终端、路由、协调器理解
- 外包!音频类小程序开发
- 对于程序员头发的认识
- 下终南山过斛斯山人宿置酒
- 用PowerPoint巧做特效字幕(转)
- android 默认输入法,踩坑之Android默认输入法配置
- php验证电子邮件,如何在PHP中验证电子邮件地址
- 火星编年史_雷.布拉德伯里
- E500 TLB miss 及 DSI处理分析(2)
- java set region_Java Region.setJurisdiction方法代碼示例