Magician 1.1.10 发布,http 支持 keep-alive 保活

565 阅读1分钟

本次更新主要是对http解码器 加入了 keep-alive保活机制,让一个tcp连接可以被同一个http客户端复用,从而减少建立tcp连接的开销,在一定程度上提高了吞吐量。

如何使用

发起http请求的时候 加上这个请求头【connection:keep-alive】,一旦加了这个 服务端将会保持tcp连接,响应之后不再关闭。现在浏览器一般都是默认有的。

如果不想用这个机制,那么务必要传这个请求头【connection:close】 或者干脆不传connection请求头。

如何回收连接

目前是第一版,还不是特别完美,回收连接主要靠两个点

  • 系统的tcp keepalive,这个是系统带的功能 如果tcp连接闲置过久 就会被回收
  • 客户端主动断开,如果客户端断开了连接,那么服务端会收到一个read事件,读取数据的时候会返回-1,后端对这个-1做了判断,一旦发现返回-1就会关闭tcp连接

这个机制带来的吞吐量如何

在本机用wrk做了一轮测试,结果如下图所示

avatar

测试脚本如下

avatar

本机配置如下

avatar

想了解更多可以访问官网

magician-io.com