CN111565219A - 一种模拟真实排队的网络连接池协议的实现方法 - Google Patents
一种模拟真实排队的网络连接池协议的实现方法 Download PDFInfo
- Publication number
- CN111565219A CN111565219A CN202010298351.0A CN202010298351A CN111565219A CN 111565219 A CN111565219 A CN 111565219A CN 202010298351 A CN202010298351 A CN 202010298351A CN 111565219 A CN111565219 A CN 111565219A
- Authority
- CN
- China
- Prior art keywords
- value
- queue
- browser
- data packet
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000008569 process Effects 0.000 claims abstract description 17
- 238000012790 confirmation Methods 0.000 claims abstract description 7
- 230000004044 response Effects 0.000 claims abstract description 6
- 238000012544 monitoring process Methods 0.000 claims abstract description 3
- 230000003068 static effect Effects 0.000 claims description 12
- 238000012423 maintenance Methods 0.000 claims description 3
- 230000003993 interaction Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
一种模拟真实排队的网络连接池协议的实现方法,浏览器插件监听客户端对WEB服务端URL的HTTP连接请求;如果监听到该请求则截获并中止,开始向协服务端发送UDP协议数据包;协服务端收到UDP数据包后读取IP地址在排队队列里匹配;浏览器插件收到列队确认信息后,继续发包,进入低频率发包阶段;然后插件给浏览器返回一个在排队中等待的页面;协服务端同时监测WEB服务端进程的CPU占用率,浏览器插件收到“AGREE”数据包后,中止发包,并代替浏览器向WEB服务端发送URL的HTTP连接请求;WEB服务端响应请求,浏览器获得WEB服务端的响应后进入正常的后续流程。本发明提升用户体验感、更加公正和公平。
Description
技术领域
本发明属于互联网服务系统,涉及一种网络连接池协议的实现方法。
背景技术
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~图3,一种模拟真实排队的网络连接池协议的实现方法,包括以下步骤:
步骤1,浏览器插件监听客户端对WEB服务端URL的HTTP连接请求;
步骤2,如果监听到该请求则截获并中止,然后开始向协服务端发送UDP协议数据包,数据包包含客户端的IP地址,第一次发送后每隔设定时间(0.2秒)发送该同样内容数据包,此阶段为高频率发包阶段;
步骤3,协服务端收到浏览器插件的UDP数据包后读取IP地址在排队队列里匹配,如果是新客户端则将它按序排入队列,接着给浏览器插件回一个数据包,报文里信息是该客户端的队列名次、或者已经列入队列的确认OK信息;如果该客户端已经存在,则给该客户端的收包数增1;
步骤4,浏览器插件收到列队确认信息后,继续发包,但时间间隔为1秒,进入低频率发包阶段;然后插件给浏览器返回一个在排队中等待的页面;
步骤5,协服务端同时监测WEB服务端进程的CPU占用率,如果发现该进程CPU占用率低于80%,则将队列里的最前面用户“接入”WEB服务端:协服务端给该用户UDP客户端(即浏览器插件)发送“AGREE”报文;并删除队列里的此用户排队对象;如果该进程CPU占用率大于等于80%,则不做;
步骤6,浏览器插件收到“AGREE”数据包后,中止发包,并代替浏览器向WEB服务端发送URL的HTTP连接请求;
步骤7,WEB服务端响应请求,浏览器获得WEB服务端的响应后进入正常的后续流程。
进一步,所述步骤3和步骤5中,协服务端的队列的维护管理使用基于内存的文档数据库实现,过程如下:
维护一个初值为1的静态整型变量,以及一个文档的内存数据库。该文档有两个键值对,一个是名次、另一个是收包数;文档键是使用IP地址进行哈希运算生成,名次值是对应的名次,由当前的静态整型变量值赋予,该静态整型变量值在被使用后自动增1;收包数的值由每次收到UDP数据包时匹配到队列里的IP(即读到该文档)后增1;协服务端收到一个UDP包只要将IP地址生成哈希值然后在数据库取值(键的GET运算),如果取得到证明已经列入队列,并把收包数增1;如果取不到,则新建一个文档,文档键为该哈希值,名次值为当前静态整型变量值,收包数初始化为1;步骤5将最前面用户接入WEB服务端需要遍历整个内存数据库找到名次值最小的排列对象,发送“AGREE”报文后删除该文档。
图1中,左图(a)是正常情况不带排队机制的标准的浏览器、WEB服务交互模式;右图(b)是带排队的模式,它无缝嵌入到既有的标准工业模式里,其中协服务端和WEB服务端不发生交互,只要部署在同一台机器即可;而浏览器插件需要截获浏览器的URL连接请求,以及主要和协服务端交互,它与WEB服务端发生一次交互,以及浏览器与WEB服务端被“AGREE”后的采用正常模式的交互。
Claims (4)
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服务端响应请求,浏览器获得WEB服务端的响应后进入正常的后续流程。
2.如权利要求1所述的一种模拟真实排队的网络连接池协议的实现方法,其特征在于,所述步骤3和步骤5中,协服务端的队列的维护管理使用基于内存的文档数据库实现,过程如下:
维护一个初值为1的静态整型变量,以及一个文档的内存数据库。该文档有两个键值对,一个是名次、另一个是收包数;文档键是使用IP地址进行哈希运算生成,名次值是对应的名次,由当前的静态整型变量值赋予,该静态整型变量值在被使用后自动增1;收包数的值由每次收到UDP数据包时匹配到队列里的IP后增1;协服务端收到一个UDP包只要将IP地址生成哈希值然后在数据库取值,如果取得到证明已经列入队列,并把收包数增1;如果取不到,则新建一个文档,文档键为该哈希值,名次值为当前静态整型变量值,收包数初始化为1;步骤5将最前面用户接入WEB服务端需要遍历整个内存数据库找到名次值最小的排列对象,发送“AGREE”报文后删除该文档。
3.如权利要求1或2所述的一种模拟真实排队的网络连接池协议的实现方法,其特征在于,所述步骤2中,间隔时间T1设置为0.2秒;所述步骤4中,时间间隔T2设置为1秒。
4.如权利要求1或2所述的一种模拟真实排队的网络连接池协议的实现方法,其特征在于,所述步骤5中,预设值为80%。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010298351.0A CN111565219A (zh) | 2020-04-16 | 2020-04-16 | 一种模拟真实排队的网络连接池协议的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010298351.0A CN111565219A (zh) | 2020-04-16 | 2020-04-16 | 一种模拟真实排队的网络连接池协议的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111565219A true CN111565219A (zh) | 2020-08-21 |
Family
ID=72071883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010298351.0A Pending CN111565219A (zh) | 2020-04-16 | 2020-04-16 | 一种模拟真实排队的网络连接池协议的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111565219A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113553525A (zh) * | 2021-07-20 | 2021-10-26 | 上海众源网络有限公司 | 一种界面控制请求处理方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6023722A (en) * | 1996-12-07 | 2000-02-08 | International Business Machines Corp. | High-availability WWW computer server system with pull-based load balancing using a messaging and queuing unit in front of back-end servers |
US6070184A (en) * | 1997-08-28 | 2000-05-30 | International Business Machines Corporation | Server-side asynchronous form management |
CN102170400A (zh) * | 2010-07-22 | 2011-08-31 | 杨喆 | 一种防止Web网站访问拥塞的方法 |
CN102387206A (zh) * | 2011-10-20 | 2012-03-21 | 镇江睿泰信息科技有限公司 | 一种Web服务并发请求合成方法及系统 |
CN105103522A (zh) * | 2013-03-07 | 2015-11-25 | 谷歌公司 | 穿过客户端侧nat防火墙的基于udp的传输协议的低时延服务器侧重定向 |
-
2020
- 2020-04-16 CN CN202010298351.0A patent/CN111565219A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6023722A (en) * | 1996-12-07 | 2000-02-08 | International Business Machines Corp. | High-availability WWW computer server system with pull-based load balancing using a messaging and queuing unit in front of back-end servers |
US6070184A (en) * | 1997-08-28 | 2000-05-30 | International Business Machines Corporation | Server-side asynchronous form management |
CN102170400A (zh) * | 2010-07-22 | 2011-08-31 | 杨喆 | 一种防止Web网站访问拥塞的方法 |
CN102387206A (zh) * | 2011-10-20 | 2012-03-21 | 镇江睿泰信息科技有限公司 | 一种Web服务并发请求合成方法及系统 |
CN105103522A (zh) * | 2013-03-07 | 2015-11-25 | 谷歌公司 | 穿过客户端侧nat防火墙的基于udp的传输协议的低时延服务器侧重定向 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113553525A (zh) * | 2021-07-20 | 2021-10-26 | 上海众源网络有限公司 | 一种界面控制请求处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102238226B (zh) | 在以内容为中心的网络上的会话迁移 | |
CN108200165B (zh) | 请求传输系统、方法、装置及存储介质 | |
CN108200158B (zh) | 请求传输系统、方法、装置及存储介质 | |
CN110612716B (zh) | 数据消息网络路由的中间设备 | |
US7385621B2 (en) | Private sharing of computer resources over an internetwork | |
CN102143177B (zh) | 一种Portal认证方法、装置、设备及系统 | |
CN109413069B (zh) | 基于区块链的虚拟网站防火墙的应用方法及装置 | |
WO2014005442A1 (zh) | 网络业务访问的方法及系统 | |
WO2012034496A1 (zh) | 一种异步通信方法及系统 | |
CN110855634A (zh) | 基于安全网络下的跨网交换服务系统及方法 | |
CN105207949B (zh) | 一种tcp优化方法和系统、sp服务器 | |
CN102571575A (zh) | 一种session 信息创建方法、装置和系统 | |
CN101355585B (zh) | 一种分布式架构数据通信设备的消息保护系统及方法 | |
CN111565219A (zh) | 一种模拟真实排队的网络连接池协议的实现方法 | |
WO2021135493A1 (zh) | 一种家庭网关访问方法、装置、系统处理器及存储介质 | |
CN109587028A (zh) | 一种控制客户端流量的方法和装置 | |
CN110582757A (zh) | 数据消息网络路由的中间设备 | |
US8060568B2 (en) | Real time messaging framework hub to intercept and retransmit messages for a messaging facility | |
CN109120578B (zh) | 一种实现链路连接处理的方法及装置 | |
CN111935316B (zh) | 一种前端设备目录获取方法及装置 | |
CN105554039B (zh) | 一种无线网络的Portal认证方法及认证系统 | |
US8645547B1 (en) | Methods and systems for providing a messaging service | |
CN106487890A (zh) | 一种基于xmpp协议的跨节点通讯网络请求方法 | |
CN109951332B (zh) | 基于非对等网络的边缘计算设备组网方法、装置及系统 | |
CN112422395A (zh) | 一种数据传输方法、装置、终端设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200821 |
|
RJ01 | Rejection of invention patent application after publication |