高性能网关的网络连接
对于高性能网关而言,连接的可复用是至关重要的,在高并发场景下,如果连接均为短链接,网关将疲于创建与断开连接。
Http 长连接设置
HTTP1.1通过使用 Connection:keep-alive 进行长连接,HTTP 1.1默认进行持久连接。在一次 TCP 连接中可以完成多个 HTTP 请求,但是对每个请求仍然要单独发 header。如果需要使用短链接,需要显示的设置请求头 Connection: close 。
通常在服务端会设置长连接的参数,主要是设置请求头里面的 Keep-Alive 参数。该参数包括了两个属性分别是 timeout 和 max。timeout 是最长空闲连接保持时间(单位是秒),max 最大长连接请求数。如果设置为0,则不生效。设置使用栗子是 Keep-Alive: timeout=5, max=1000 。以 tomcat 为例,在 server.xml 中配置 maxKeepAliveRequests 和 keepAliveTimeout 来控制上述参数。
TCP 长连接
TCP 长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持(不发生RST包和四次挥手)。
连接→数据传输→保持连接(心跳)→数据传输→保持连接(心跳)→……→关闭连接(一个TCP连接通道多个读写通信);
这就要求长连接在没有数据通信时,定时发送数据包(心跳),以维持连接状态;
TCP保活功能,保活功能主要为服务器应用提供,服务器应用希望知道客户主机是否崩溃,从而可以代表客户使用资源。如果客户已经消失,使得服务器上保留一个半开放的连接,而服务器又在等待来自客户端的数据,则服务器将应远等待客户端的数据,保活功能就是试图在服务器端检测到这种半开放的连接。
如果一个给定的连接在两小时内没有任何的动作,

最低0.47元/天 解锁文章
1434

被折叠的 条评论
为什么被折叠?



