一种端口监听方法、系统及服务器技术方案

技术编号:34358988 阅读:74 留言:0更新日期:2022-07-31 07:09
本发明专利技术公开了一种端口监听方法、系统及服务器,其中,应用于端口监听进程中的方法包括:在出现新增端口时,若所述新增端口未被初始化,获取所述新增端口的端口信息,并对所述端口信息初始化后,将生成的监听结构信息存储于共享内存中;接收工作进程发来的针对目标监听结构信息的端口监听请求,并判断所述目标监听结构信息是否已完成监听;在确认所述目标监听结构信息已完成监听的情况下,将监听得到的文件描述符反馈给所述工作进程,以使得所述工作进程通过新生效的端口处理请求。本申请提供的技术方案,能够适应频繁变更端口的应用场景。能够适应频繁变更端口的应用场景。能够适应频繁变更端口的应用场景。

A port monitoring method, system and server

【技术实现步骤摘要】
一种端口监听方法、系统及服务器


[0001]本专利技术涉及互联网
,特别涉及一种端口监听方法、系统及服务器。

技术介绍

[0002]在CDN(Content Delivery Network,内容分发网络)中,通过代理服务器,可以为域名提供加速服务。
[0003]随着CDN中域名规模的不断增大,加速域名通常需要频繁地变更端口。而在现有的代理服务器中,需要监听的端口通常是提前配置好的,一旦出现端口变更,主进程(master进程)就需要重新进行配置初始化,并创建出新的工作进程(worker进程)提供服务,这样无疑会浪费较多的系统资源。
[0004]针对上述缺陷,目前提出了一些改进的方案。例如,一种方案可以将所有可能监听的端口都提前监听好,以备端口更新的时候使用。又例如,另一种方案可以通过端口映射的方式,将特殊端口映射为完成监听的端口。然而这样的改进方案通常也具备一定的缺陷。第一种方案需要监听大量的端口,系统资源也会造成极大的浪费,而且加速服务中可能出现的特殊端口无法提前监听。第二种方案通过端口映射时,无法复原出原始的端口,而加速域名提供需要对原始的端口进行差异化处理,这样无疑给加速服务提高了难度。
[0005]因此,目前亟需一种能够有效变更监听端口的方案。

技术实现思路

[0006]本申请的目的在于提供一种端口监听方法、系统及服务器,能够适应频繁变更端口的应用场景。
[0007]为实现上述目的,本申请一方面提供一种端口监听方法,所述方法应用于端口监听进程中,所述方法包括:在出现新增端口时,若所述新增端口未被初始化,获取所述新增端口的端口信息,并对所述端口信息初始化后,将生成的监听结构信息存储于共享内存中;接收工作进程发来的针对目标监听结构信息的端口监听请求,并判断所述目标监听结构信息是否已完成监听;在确认所述目标监听结构信息已完成监听的情况下,将监听得到的文件描述符反馈给所述工作进程,以使得所述工作进程通过新生效的端口处理请求。
[0008]为实现上述目的,本申请另一方面还提供一种端口监听系统,所述系统包括:初始化单元,用于在出现新增端口时,若所述新增端口未被初始化,获取所述新增端口的端口信息,并对所述端口信息初始化后,将生成的监听结构信息存储于共享内存中;判断单元,用于接收工作进程发来的针对目标监听结构信息的端口监听请求,并判断所述目标监听结构信息是否已完成监听;反馈单元,用于在确认所述目标监听结构信息已完成监听的情况下,将监听得到的文件描述符反馈给所述工作进程,以使得所述工作进程通过新生效的端口处理请求。
[0009]为实现上述目的,本申请另一方面还提供一种端口监听方法,所述方法应用于工作进程中,所述方法包括:遍历共享内存中的监听结构信息,并根据遍历结果确定待监听的
端口标识;向端口监听进程发送包含所述端口标识的端口监听请求,并接收所述端口监听进程针对所述端口监听请求反馈的文件描述符;调用预设接收接口获取所述文件描述符处的请求,并处理获取的所述请求。
[0010]为实现上述目的,本申请另一方面还提供一种端口监听系统,所述系统包括:遍历单元,用于遍历共享内存中的监听结构信息,并根据遍历结果确定待监听的端口标识;监听单元,用于向端口监听进程发送包含所述端口标识的端口监听请求,并接收所述端口监听进程针对所述端口监听请求反馈的文件描述符;请求处理单元,用于调用预设接收接口获取所述文件描述符处的请求,并处理获取的所述请求。
[0011]为实现上述目的,本申请另一方面还提供一种服务器,所述服务器包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的端口监听方法。
[0012]由上可见,本申请一个或者多个实施方式提供的技术方案,主进程可以创建端口监听进程,该端口监听进程可以用于动态地监听新增端口。具体地,当出现端口变更时,针对新增端口,端口监听进程可以先判断该新增端口是否已经完成了初始化,或没有,可以获取该新增端口的端口信息。在实际应用中,端口信息可以监听IP地址、监听端口号、套接字对应的读写缓冲区大小、TCP网络拥塞参数控制等信息。针对获取的端口信息,端口监听进程可以对其进行初始化,并将生成的监听结构信息存储于共享内存中。工作进程可以定时检测共享内存中的监听结构信息,如果存在未生效的监听结构信息,可以向端口监听进程发送对应的端口监听请求。端口监听进程接收到该端口监听请求之后,可以在确保对应的目标监听结构信息完成监听的情况下,向工作进程反馈监听得到的文件描述符。这样,工作进程便可以根据文件描述符,通过新生效的端口处理各项请求,从而完成端口变更的过程。可见,通过工作进程与端口监听进程的协同运作,可以在端口发生变更时再进行初始化和监听的过程,不仅节省了系统的资源消耗,还能够及时地生效变更后的端口,保证了加速服务的稳定性和及时性。
附图说明
[0013]为了更清楚地说明本专利技术实施方式中的技术方案,下面将对实施方式描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0014]图1是本专利技术实施方式中的系统结构示意图;
[0015]图2是本专利技术实施方式中端口监听进程执行的动态监听端口的步骤示意图;
[0016]图3是本专利技术实施方式端口监听进程执行的流程示意图;
[0017]图4是本专利技术实施方式中工作进程执行的动态监听端口的步骤示意图;
[0018]图5是本专利技术实施方式工作进程执行的流程示意图。
具体实施方式
[0019]为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施方式及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施方式仅是本申
请一部分实施方式,而不是全部的实施方式。基于本申请中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本申请保护的范围。
[0020]本申请提供的端口监听方法,可以应用于如图1所示的系统架构中。在CDN的节点服务器、负载均衡器以及代理服务器等设备中,都可以部署该系统架构。举例来说,当前的CDN中,nginx架构由于高性能和较高的稳定性,被广泛地应用于节点服务器、负载均衡器以及代理服务器等设备中。本申请以nginx架构为例,阐述该端口监听方法。在本申请中,主进程(master进程)可以创建出工作进程(worker进程)和端口监听进程,并且主进程可以创建共享内存。不同于进程堆内存,共享内存中的信息可以在不同的进程之间(例如多个工作进程之间,或者工作进程与端口监听进程之间)共享。其中,工作进程可以负责处理已生效的端口处接收到的请求,端口监听进程则可以动态地对出现变更的端口进行监听。
[0021]在实际应用中,工作进程与端口监听进程之间,可以通过双向管道进行通信。工作进程可以通过该双向管道,向端口监听进程发送端口监听请本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种端口监听方法,其特征在于,所述方法应用于端口监听进程中,所述方法包括:在出现新增端口时,若所述新增端口未被初始化,获取所述新增端口的端口信息,并对所述端口信息初始化后,将生成的监听结构信息存储于共享内存中;接收工作进程发来的针对目标监听结构信息的端口监听请求,并判断所述目标监听结构信息是否已完成监听;在确认所述目标监听结构信息已完成监听的情况下,将监听得到的文件描述符反馈给所述工作进程,以使得所述工作进程通过新生效的端口处理请求。2.根据权利要求1所述的方法,其特征在于,对所述端口信息初始化包括:在所述共享内存中将所述端口信息处理为配置信息结构,并调用初始化监听接口,对所述配置信息结构进行初始化,以生成所述端口信息对应的监听结构信息。3.根据权利要求1或2所述的方法,其特征在于,所述端口监听进程在进程堆内存中初始化向量数组,所述向量数组用于记录各个监听结构信息的监听状态;判断所述目标监听结构信息是否已完成监听包括:从所述向量数据中读取所述目标监听结构信息对应的监听状态,并基于所述监听状态判断所述目标监听结构信息是否已完成监听。4.根据权利要求1所述的方法,其特征在于,若所述目标监听结构信息未完成监听,所述方法还包括:创建所述目标监听结构信息对应的链接套接字,并将所述目标监听结构信息中的通信地址绑定至所述链接套接字上;调用预设监听接口对绑定了通信地址的所述链接套接字进行监听,得到监听成功的文件描述符。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:将监听成功的所述文件描述符写入由所述端口监听进程在进程堆内存中创建的向量数组中;其中,若所述工作进程出现异常,所述向量数组中的文件描述符依然接收新请求的接入。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:若当前的端口监听进程出现异常,新启用的端口监听进程从所述共享内存中读取已生成的监听结构信息。7.一种端口监听系统,其特征在于,所述系统包括:初始化单元,用于在出现新增端口时,若所述新增端口未被初始化,获取所述新增端口的端口信息,并对所述端口信息初始化后,将生成的监听结构信息存储于共享内存中;判断单元,用于接收工作进程发来的针对目标监听结构信息的端口监听请...

【专利技术属性】
技术研发人员:朱智佳
申请(专利权)人:网宿科技股份有限公司
类型:发明
国别省市:

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

1