程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

HTTP链接保活,3个层面的保活机制,让你的认知入木三分

balukai 2025-01-12 11:29:38 文章精选 13 ℃

【前言:自己总结的学习知识点的BWH原则:一、(B-Background)背景知识;二、(W-What)是什么;;三、(H-How)怎么实现的;】

HTTP链接保活,包括三个层面的从上往下依次是:应用程序层的保活、HTTP协议层的保活和TCP/IP层的保活。而我们一般关注的是应用程序层的保活,其他两层也需要了解一下,探求知识点的本质,让自己看得更深入一点。

应用程序层

HTTP链接要保活,很多人应该能够想到“心跳”机制,在应用层,自己写代码实现与服务器的定时的心跳检测,保证链接的持续性。

应用程序层面的保活主要检测的是程序的“假死”,程序的进程在,但是程序无法处理正常的请求。

HTTP协议层(OSI模型第7层)

在HTTP协议层,HTTP请求header中,也有一个属性Connection,其值为keep-alive,代表此HTTP请求建立的链接不会马上断开,而是可以进行重复的利用,节省网络资源。

HTTP接口测试:

HTTP访问网页:



TCP/IP协议层(OSI模型第3、4层)

TCP/IP协议的实现是在内核态,建立链接的3次握手协议、断开链接的4次挥手协议,此层为了保持链接的持续性

Keepalive的作用,一个作用是检测通过互联网连接的两个服务是否是活跃的;一个作用是检测连接两个服务的网络的连通性。根据Linux内核对TCP/IP协议的实现,主要有三个参数:



1、tcp_keepalive_time

最后一个数据包发送(简单ack不被认为是数据)和第一个keepalive探测之间的时间间隔;标记需要keepalive连接后,该计数器没有使用任何进一步。

2、tcp_keepalive_intvl

并发的keepalive探针之间的间隔,不管什么同时交换的连接。

3、tcp_keepalive_probes

不被承认的探测器的数量发送之前考虑死亡,通知应用程序层的连接。

最近发表
标签列表