摘要:
在koa下实现路由注册与参数绑定,我们要达到下面的效果: 首先我们需要几个装饰器,分别作用于类,方法和参数 接下来,需要对koa提供的类进行包装,将路由注册之后,再暴露给外部。此外,由于方法装饰器和类装饰器在类被加载的时候才会生效,所以需要加载所有的controller类,这是用了fs模块递归加载。 阅读全文
摘要:
ratelimit.js基于滑动窗口和redis实现限流,为dudleycarr所开源,源码见github:https://github.com/dudleycarr/ratelimit.js 原理见:Introduction to rate limiting with Redis [Part 2] 阅读全文
摘要:
import * as winston from 'winston'; // 引入config模块,log相关配置放在配置文件下 import config from 'config'; class Logger { private readonly consoleLevel: string; private readonly fileLevel: string; ... 阅读全文
摘要:
//指定单体命名空间 const Ext = {}; //执行函数的结果返回给Ext.base Ext.base=(function () { let singleton; //初始化函数 function init() { //私有成员变量 let a1 = "a1"; let a2 = "a2"; ... 阅读全文
摘要:
//声明接口类,用于实例化接口 function Interface(name,methods) { this.name = name; let functions = []; //方法名为字符串类型 methods.forEach(method=>{ if(typeof method !== "string"){ thro... 阅读全文
摘要:
js去除数组中的重复元素可以利用js中对象中的key永远是不会重复的这个特性来处理,分为以下两步: 1.将数组转换为对象,并且将数组中的元素作为对象的key 2.根据对象的key重新构建数组 阅读全文
摘要:
tcp连接的粘包、拆包发生在长连接中,先了解一下长、短连接的概念 短连接:请求/响应之后,关闭已经建立的tcp连接,下次请求再建立新的连接 长连接:请求/响应之后,不关闭已经建立的tcp连接,多次请求,复用同一个连接 粘包:Nagle算法,客户端累积一定量或者缓冲一段时间再传输。服务端缓冲区堆积,导 阅读全文
摘要:
1.配置项 2.连接数调整 总连接数 = acceptCount+connections connections:tomcat能接收的请求限制 acceptCount:超过tomcat能接收的请求以后,堆积在操作系统的数量(windows和linux略有不同) 什么时候需要调整connnection 阅读全文
摘要:
多实例安装 首先上mysql官网https://dev.mysql.com/downloads/mysql/下载最新版的mysql,由于要安装多个mysql实例,这里我选择压缩包版本的mysql手动安装。 下载macOS 10.14 (x86, 64-bit), TAR这个版本后,运行tar -xv 阅读全文
摘要:
redis通信原理 redis客户端与服务端之间使用tcp进行通信,redis客户端每执行一条命令,都会将命令封装成特定的格式传送到服务端, 如果我们需要实现redis客户端,就需要完成请求的封装。 如果我们打开redis的aof文件,经常会看到类似于下面这样的内容,这实际上就是客户端发送给服务端的 阅读全文