一种基于UDP协议高并发HTTP请求缓存和内容推送系统及方法技术方案

技术编号:28429595 阅读:23 留言:0更新日期:2021-05-11 18:39
本发明专利技术涉及URL访问处理技术领域,尤其涉及一种基于UDP协议高并发HTTP请求缓存和内容推送系统及方法,本发明专利技术包括UDPCache服务器和为UDPCache服务器提供URL缓存更新的HTTP源服务器,UDPCache服务器通过UDP协议进行通信连接有UDPCache客户端,还包括通过普通的HTTP短轮询UDPCache客户端的应用客户端,其中HTTP源服务器和UDPCache服务器设立在服务侧,UDPCache客户端和应用客户端设在客户侧。所述UDPCache服务器和UDPCache客户端均可扩展为多个,所述UDPCache服务器包括底层基础模块和功能模块,其中底层基础模块包括HTTP客户端模块、UDP消息处理模块和HTTP服务器模块,所述功能模块包括控制API服务模块、URL管理模块和用户管理模块。本发明专利技术保证服务器端的极低的资源开销,同时客户端易于使用,保持HTTP协议的便捷性。

【技术实现步骤摘要】
一种基于UDP协议高并发HTTP请求缓存和内容推送系统及方法
本专利技术涉及URL访问处理
,特别涉及一种基于UDP协议高并发HTTP请求缓存和内容推送系统及方法。
技术介绍
在一个使用大量客户端的应用场景下,一个常见的需求是一个服务器给海量客户端提供服务,服务器需要给所有客户端推送升级消息或者其他通知消息。在目前的网络状况下,这需要客户端保持与服务器的TCP长链接,或者客户端用UDP/TCP包对服务器不停进行轮询。即使使用长连接,为了保持链接不被中间的路由器/防火墙等设备断开,客户端也需要周期性地给服务器发送心跳消息,这都需要一个高并发的后端服务来做支撑。从协议层面来说,客户端推送技术分为采用TCP和UDP推送的两大类方案:TCP推送:TCP推送可以有两种模式,一个是长连接模式,即客户端维持一个到服务器的长连接,服务器需要推送消息给客户端的时候,通过长连接发送消息,但为了保证连接不被断开,一般还需要结合周期性的心跳信号来“保活”。另外一个模式是TCP短链接轮询,即周期性的连接服务器,询问是否有自己的推送消息。在TCP推送里,可以是普通TCP连接,也可以是HTTP/WebSocket连接,后者在基于WEB技术的应用里更加普遍。UDP推送:一般就是UDP轮询,客户端周期性地给服务器发送UDP消息,询问是否有给自己的消息或者任务。TCP推送的优点:在基于TCP的推送方案中,如果使用HTTP轮询或者WebSocket长连接方式,有个优点就是HTTP协议客户端容易开发使用,也可以直接通过浏览器中的JavaScript客户端给单页HTTP应用做消息推送。但基于HTTP的推送由于在TCP报文的基础上,封装HTTP消息,所以会使用更多的额外带宽开销。TCP推送的缺点:上述方法中,使用TCP协议开发消息推送服务,在并发客户端数目很多的情况下,服务器需要维护大量的TCP链接,这会占用大量服务器资源,同时发送心跳信号时,TCP包头和来往的ACK确认消息会占用额外的网络带宽。UDP推送的优缺点:上述方案中基于UDP的推送方案,由于服务器端不需要维护大量连接,同时协议报头开销也可以做得TCP方案更低,所以服务器端的资源占用会显著降低。UDP推送的缺点:在客户端一侧,由于大部分客户端的升级、消息推送等都是基于WEB技术开发,UDP协议不如TCP,特别是HTTP协议来的通用和常见,特别是浏览器中的WEB应用基本无法使用UDP协议(除了最新的浏览器通过WebRTC来支持,但也过于复杂),所以基于UDP的推送难于在客户端使用。
技术实现思路
本专利技术提出了一种基于UDP协议的高并发HTTP请求缓存和内容推送系统包括UDPCache服务器和为UDPCache服务器提供URL缓存更新的HTTP源服务器,UDPCache服务器通过UDP协议进行通信连接有UDPCache客户端,还包括通过普通的HTTP短轮询UDPCache客户端的应用客户端,其中HTTP源服务器和UDPCache服务器设立在服务侧,UDPCache客户端和应用客户端设在客户侧。对于应用客户端,UDPCache客户端模块是一个普通的HTTP服务器。UDPCache客户端在收到应用客户端的URL请求后,会向UDPCache服务器订阅该URL,以告知服务器自己对该URL进行关注,以后发生变化应该主动通知。当应用客户端在退出程序,或者不在对之前轮询的URL关注的时候,可以调用UDPCache客户端的删除接口,从而让其给UDPCache服务器发送URL取消关注的消息,告知不再对此URL进行关注。进一步,在服务侧,UDPCache服务器一方面是一个UDP推送服务器,另外一方面是一个普通的HTTP客户端,它访问HTTP源服务器,然后缓存到UDPCache服务器本地。UDPCache服务器类似squid等普通的HTTP缓存服务,它可以配置被缓存的URL的过期时间,也可以在当源站内容发生变化的时候,主动通过缓存更新请求“刷新”UDPCache服务器中缓存的URL。UDPCache服务器在检测到被缓存的URL内容发生了更新的时候,会主动通知关注了该URL的UDPCache客户端,从而在应用客户端下次轮询的时候,可以获取到更新后的内容。进一步,所述UDPCache服务器和UDPCache客户端均可扩展为多个,所述UDPCache服务器包括底层基础模块和功能模块,其中底层基础模块包括HTTP客户端模块、UDP消息处理模块和HTTP服务器模块,所述功能模块包括控制API服务模块、URL管理模块和用户管理模块。由于单台服务器能支撑的并发数优先,UDPCache服务器可以采用如图7或者图8所示的集群部署方式。根据负载均衡机制的不同,如果负载均衡是会话级别的负载均衡,可以保证一个客户端持续性连接在某一个后端服务器上,那么服务器集群就可以使用图7所示的独立部署模式,服务器之间不用共享数据。如果负载均衡会对到来的请求进行包级别的均衡,那需要后端的UDPCache服务器共享用户和URL订阅信息。进一步,其中URL管理模块包括URL转换脚本模块和URL转换扩展模块。URL管理模块最重要的是进行URL转换,对于UDPCache服务器收到的每一个订阅URL的请求,它参数可能携带有客户端相关的特征,URL转换模块的最用就是将收到的用户订阅URL通过外部URL转换脚本转换为用于请求HTTP源服务器的请求URL,URL转换的主要目的是,减少请求源站的URL的数目,例如用户请求的URL是:https://www.xxxxxx.com/getUpdateMsg?Clientid=123234&random=123324,如果Clientid和random对于请求源站不重要,可以被上述URL转换为:https://www.xxxxxx.com/getUpdateMsg这样所有应用客户端的请求最终其实只需要向源站请求一个URL。URL转换脚本也可以是任意规则,例如把域名做转换也可以。具体使用脚本来实现,目的是为了转换的灵活性。进一步,其中HTTP客户端模块用于请求源站URL;UDP消息处理模块用于UDP消息的接收发送、封装解包以及分析处理,包括可靠消息的重传;HTTP服务器模块用于实现基础的HTTPServer的功能,主要用于给外部提供控制API;API服务模块用于给外部提供控制API,以用于URL更新、删除、在线用户查看处理;URL管理模块用于UDPCache客户端订阅的URL的管理;用户管理模块用于管理在线用户。进一步,其中URL管理模块应用于URL转换时,具体将收到的用户订阅URL通过外部URL转换脚本模块转换为用于请求HTTP源服务器的请求URL。进一步,所述UDPCache客户端包括HTTP服务器模块、URL管理模块和UDP消息处理模块;其中HTTP服务器模块为应用客户端提供普通的URL轮询请求接口,URL管理模块用于管理负责来自不同应用客户端的请求,UDP消息处理模块用于UDP消息的接收发送、封装解包、分析处理以及可靠消息的重传。进一步,为尽本文档来自技高网
...

【技术保护点】
1.一种基于UDP协议的高并发HTTP请求缓存和内容推送系统,其特征在于,包括UDPCache服务器和为UDPCache服务器提供URL缓存更新的HTTP源服务器,以及对应的UDPCache客户端和应用客户端,UDPCache服务器通过UDP协议将URL内容推送给UDPCache客户端,然后应用客户端通过普通的HTTP短轮询从UDPCache客户端获取URL应答内容,其中HTTP源服务器和UDPCache服务器设立在服务侧,UDPCache客户端和应用客户端设在客户侧。/n

【技术特征摘要】
1.一种基于UDP协议的高并发HTTP请求缓存和内容推送系统,其特征在于,包括UDPCache服务器和为UDPCache服务器提供URL缓存更新的HTTP源服务器,以及对应的UDPCache客户端和应用客户端,UDPCache服务器通过UDP协议将URL内容推送给UDPCache客户端,然后应用客户端通过普通的HTTP短轮询从UDPCache客户端获取URL应答内容,其中HTTP源服务器和UDPCache服务器设立在服务侧,UDPCache客户端和应用客户端设在客户侧。


2.根据权利要求1所述的一种基于UDP协议的高并发HTTP请求缓存和内容推送系统,其特征在于,所述UDPCache服务器和UDPCache客户端均可扩展为多个,所述UDPCache服务器包括底层基础模块和功能模块,其中底层基础模块包括HTTP客户端模块、UDP消息处理模块和HTTP服务器模块,所述功能模块包括控制API服务模块、URL管理模块和用户管理模块。


3.根据权利要求2所述的一种基于UDP协议的高并发HTTP请求缓存和内容推送系统,其特征在于:其中URL管理模块包括URL转换脚本模块和URL转换扩展模块。


4.根据权利要求2所述的一种基于UDP协议的高并发HTTP请求缓存和内容推送系统,其特征在于:其中HTTP客户端模块用于请求源站URL;UDP消息处理模块用于UDP消息的接收发送、封装解包以及分析处理,包括可靠消息的重传;HTTP服务器模块用于实现基础的HTTPServer的功能,主要用于给外部提供控制API;API服务模块用于给外部提供控制API,以用于URL更新、删除、在线用户查看处理;URL管理模块用于UDPCache客户端订阅的URL的管理;用户管理模块用于管理在线用户。


5.根据权利要求3所述的一种基于UDP协议的高并发HTTP请求缓存和内容推送系统,其特征在于:其中URL管理模块应用于URL转换时,具体将收到的用户订阅URL通过外部URL转换脚本模块...

【专利技术属性】
技术研发人员:张焕强
申请(专利权)人:北京金万维科技有限公司
类型:发明
国别省市:北京;11

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

1