一种模拟真实排队的网络连接池协议的实现方法技术

技术编号:25350240 阅读:21 留言:0更新日期:2020-08-21 17:08
一种模拟真实排队的网络连接池协议的实现方法,浏览器插件监听客户端对WEB服务端URL的HTTP连接请求;如果监听到该请求则截获并中止,开始向协服务端发送UDP协议数据包;协服务端收到UDP数据包后读取IP地址在排队队列里匹配;浏览器插件收到列队确认信息后,继续发包,进入低频率发包阶段;然后插件给浏览器返回一个在排队中等待的页面;协服务端同时监测WEB服务端进程的CPU占用率,浏览器插件收到“AGREE”数据包后,中止发包,并代替浏览器向WEB服务端发送URL的HTTP连接请求;WEB服务端响应请求,浏览器获得WEB服务端的响应后进入正常的后续流程。本发明专利技术提升用户体验感、更加公正和公平。

【技术实现步骤摘要】
一种模拟真实排队的网络连接池协议的实现方法
本专利技术属于互联网服务系统,涉及一种网络连接池协议的实现方法。
技术介绍
TCP协议以“三次握手、四次挥手”而具较重的资源负荷,在HTTP协议中首先通过“三次握手”建立TCP连接通道,然后客户端以HTTP指令(Get、Post等)请求服务器获得服务器的响应,这种请求、响应可以交互多次,直到双方中任意一方关闭TCP连接,从而导致对方被动关闭,这一最后的关闭过程即为TCP通道的“四次挥手”。以上为HTTP1.0的标准协议流程,在HTTP1.1里此种TCP连接可以设置成Alive成为长连接,也称连接池。而HTTP2.0则采用多路复用的方法,客户端每针对一个域名与其服务器维系一个永久链接,从而能发起多重请求,该连接成为一个交互管道,类似长连接的时长限制、请求数目限制亦不复存在。这一系列技术演进的深层动因是使得WEB服务器在并发响应多路用户连接时尽可能降低资源消耗,主要是TCP连接、关闭的资源消耗,从而能够支持更多的业务并发。可以粗略的说,HTTP1.0只能支持少量的并发业务,HTTP1.1可以支持高并发(但需要前端优化开发的配合),而HTTP2.0则支持更大量的并发且有效降低前端开发工作量。但是对于业务爆炸点时的大“脉冲”连接数目仍是无法承受的,例如类似电商双“11”的抢购等,这里不考虑现在实际应用的分布式扩容部署支撑技术,只是从单机WEB服务应对的能力方面作出新的改进,这种实施方案完全兼容当下C/S的HTTP交互,因而可以将单机服务器的实施机制“无缝”嵌入到实际的分布式扩容支撑方案里,从而进一步发挥出此种改进的增益效果。在电信呼叫中心的人工服务中,如果遇到话务员忙,则系统提示来电用户进入等待背景音乐播放环节,直到该呼叫被话务员接入为止。当WEB服务侧不及应对众多客户端的并发请求时如何将众多客户端进行排队等候,然后分批接入提供服务。如此,将有效地改善目前这样一种用户体验:即当服务端同时被涌入大量访问时,只有在服务端并发容量数目之内的客户端数被接入,剩余的将被直接拒绝服务(表现为要么连接断掉,要么被引导到等待页面)。当服务端有余量时,这些等待的用户端是不会被服务端主动接入的(因为不符合服务等待型设计的协议),所以客户端用户会反复点击服务端连接URL地址(重新连接、或退出等待页面重新登陆),这样造成了对服务端“无谓”的流量冲击(反正短时内服务端也无法接入新的访问请求),造成一种紊乱的用户体验。而且更重要的是即便暂时无法提供服务,但也没有对即将接受服务的客户对象进行排队的概念的,就像在医院里挂号,先到前台取个号轮到叫号时再去窗口挂号,这里排队的概念是在需求一到达时即刻作出的(前台取号)。这种无排队概念的情形造成的一个后果举例来说明:假设服务端提供的优惠卷有1万份,但服务端的并发接入是5000,处理5000个服务领取优惠卷的系统耗时4秒,则当服务开始时,张三在10万人的涌入请求里按时序排在第5001,于是第一个4秒时间内,张三没有被接入于是张三频繁点击重入,结果在其后的第二波涌入中又排在第5002,于是第二波也没有被接入且优惠卷被抢完了,如果有排队概念,则张三在4秒后自动被“接入”获得优惠卷的。可见如果没有排队概念,网络服务还有失公正、公平。基于以上阐述的现在的互联网服务系统没有排队概念的情况(只有互联网预约系统,和线下结合有排队的概念,即网络预约、线下排队)。
技术实现思路
为了克服已有互联网服务系统的没有排队概念、用户体验较差的不足,本专利技术提供了一种提升用户体验感、更加公正和公平的模拟真实排队的网络连接池协议的实现方法。本专利技术解决其技术问题所采用的技术方案是:一种模拟真实排队的网络连接池协议的实现方法,包括以下步骤:步骤1,浏览器插件监听客户端对WEB服务端URL的HTTP连接请求;步骤2,如果监听到该请求则截获并中止,然后开始向协服务端发送UDP协议数据包,数据包包含客户端的IP地址,第一次发送后每隔设定时间T1发送该同样内容数据包,此阶段为高频率发包阶段;步骤3,协服务端收到浏览器插件的UDP数据包后读取IP地址在排队队列里匹配,如果是新客户端则将它按序排入队列,接着给浏览器插件回一个数据包,报文里信息是该客户端的队列名次、或者已经列入队列的确认OK信息;如果该客户端已经存在,则给该客户端的收包数增1;步骤4,浏览器插件收到列队确认信息后,继续发包,但时间间隔为T2,T2>T1,进入低频率发包阶段;然后插件给浏览器返回一个在排队中等待的页面;步骤5,协服务端同时监测WEB服务端进程的CPU占用率,如果发现该进程CPU占用率低于预设值,则将队列里的最前面用户“接入”WEB服务端:协服务端给该用户UDP客户端(即浏览器插件)发送“AGREE”报文;并删除队列里的此用户排队对象;如果该进程CPU占用率大于等于设定值,则不做;步骤6,浏览器插件收到“AGREE”数据包后,中止发包,并代替浏览器向WEB服务端发送URL的HTTP连接请求;步骤7,WEB服务端响应请求,浏览器获得WEB服务端的响应后进入正常的后续流程。进一步,所述步骤3和步骤5中,协服务端的队列的维护管理使用基于内存的文档数据库实现,过程如下:维护一个初值为1的静态整型变量,以及一个文档的内存数据库。该文档有两个键值对,一个是名次、另一个是收包数;文档键是使用IP地址进行哈希运算生成,名次值是对应的名次,由当前的静态整型变量值赋予,该静态整型变量值在被使用后自动增1;收包数的值由每次收到UDP数据包时匹配到队列里的IP(即读到该文档)后增1;协服务端收到一个UDP包只要将IP地址生成哈希值然后在数据库取值(键的GET运算),如果取得到证明已经列入队列,并把收包数增1;如果取不到,则新建一个文档,文档键为该哈希值,名次值为当前静态整型变量值,收包数初始化为1;步骤5将最前面用户接入WEB服务端需要遍历整个内存数据库找到名次值最小的排列对象,发送“AGREE”报文后删除该文档。再进一步,所述步骤2中,间隔时间T1设置为0.2秒;所述步骤4中,时间间隔T2设置为1秒。当然,也可以是其他间隔时间。更进一步,所述步骤5中,预设值为80%。当然,也可以是其他数值。本专利技术只提供客户端对一个WEB服务端的情形设计,由于它兼容于端到端的WEB服务流程,这套机制应该可以无缝嵌入到实际的分布式系统里。对于正常情形下的,一个客户端对一个WEB服务端的情形,本方法只需要在客户端侧增加一个浏览器插件模块,在WEB服务端增设置一个协服务端模块(协服务端和WEB服务端部署于同一台物理机器上),以及设计插件模块和协服务端之间的通信协议,浏览器插件为一个UDP客户端,而协服务端是一个UDP服务端。本专利技术的有益效果主要表现在:提升用户体验感、更加公正和公平。附图说明图1是浏览器、WEB服务交互模式,其中,(a)是正常模式;(b)是带排队的模式。图2是一种模拟真实排队的网络连接池协议的实现方法的流程图。图3本文档来自技高网
...

【技术保护点】
1.一种模拟真实排队的网络连接池协议的实现方法,其特征在于,所述方法包括以下步骤:/n步骤1,浏览器插件监听客户端对WEB服务端URL的HTTP连接请求;/n步骤2,如果监听到该请求则截获并中止,然后开始向协服务端发送UDP协议数据包,数据包包含客户端的IP地址,第一次发送后每隔设定时间T1发送该同样内容数据包,此阶段为高频率发包阶段;/n步骤3,协服务端收到浏览器插件的UDP数据包后读取IP地址在排队队列里匹配,如果是新客户端则将它按序排入队列,接着给浏览器插件回一个数据包,报文里信息是该客户端的队列名次、或者已经列入队列的确认OK信息;如果该客户端已经存在,则给该客户端的收包数增1;/n步骤4,浏览器插件收到列队确认信息后,继续发包,但时间间隔为T2,T2>T1,进入低频率发包阶段;然后插件给浏览器返回一个在排队中等待的页面;/n步骤5,协服务端同时监测WEB服务端进程的CPU占用率,如果发现该进程CPU占用率低于预设值,则将队列里的最前面用户“接入”WEB服务端:协服务端给浏览器插件发送“AGREE”报文;并删除队列里的此用户排队对象;如果该进程CPU占用率大于等于设定值,则不做;/n步骤6,浏览器插件收到“AGREE”数据包后,中止发包,并代替浏览器向WEB服务端发送URL的HTTP连接请求;/n步骤7,WEB服务端响应请求,浏览器获得WEB服务端的响应后进入正常的后续流程。/n...

【技术特征摘要】
1.一种模拟真实排队的网络连接池协议的实现方法,其特征在于,所述方法包括以下步骤:
步骤1,浏览器插件监听客户端对WEB服务端URL的HTTP连接请求;
步骤2,如果监听到该请求则截获并中止,然后开始向协服务端发送UDP协议数据包,数据包包含客户端的IP地址,第一次发送后每隔设定时间T1发送该同样内容数据包,此阶段为高频率发包阶段;
步骤3,协服务端收到浏览器插件的UDP数据包后读取IP地址在排队队列里匹配,如果是新客户端则将它按序排入队列,接着给浏览器插件回一个数据包,报文里信息是该客户端的队列名次、或者已经列入队列的确认OK信息;如果该客户端已经存在,则给该客户端的收包数增1;
步骤4,浏览器插件收到列队确认信息后,继续发包,但时间间隔为T2,T2>T1,进入低频率发包阶段;然后插件给浏览器返回一个在排队中等待的页面;
步骤5,协服务端同时监测WEB服务端进程的CPU占用率,如果发现该进程CPU占用率低于预设值,则将队列里的最前面用户“接入”WEB服务端:协服务端给浏览器插件发送“AGREE”报文;并删除队列里的此用户排队对象;如果该进程CPU占用率大于等于设定值,则不做;
步骤6,浏览器插件收到“AGREE”数据包后,中止发包,并代替浏览器向WEB服务端发送URL的HTTP连接请求;
步骤7,WEB服务端响应请求...

【专利技术属性】
技术研发人员:陆成刚
申请(专利权)人:浙江工业大学
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1