CN110333916A - 请求消息处理方法、装置、计算机系统及可读存储介质 - Google Patents
请求消息处理方法、装置、计算机系统及可读存储介质 Download PDFInfo
- Publication number
- CN110333916A CN110333916A CN201910527384.5A CN201910527384A CN110333916A CN 110333916 A CN110333916 A CN 110333916A CN 201910527384 A CN201910527384 A CN 201910527384A CN 110333916 A CN110333916 A CN 110333916A
- Authority
- CN
- China
- Prior art keywords
- request message
- message
- subprocess
- request
- strategy
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 23
- 238000012545 processing Methods 0.000 claims abstract description 75
- 238000000034 method Methods 0.000 claims abstract description 28
- 230000005540 biological transmission Effects 0.000 claims abstract description 13
- 230000006870 function Effects 0.000 claims description 21
- 238000004891 communication Methods 0.000 claims description 15
- 238000012790 confirmation Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 7
- 238000012544 monitoring process Methods 0.000 claims description 4
- 230000006641 stabilisation Effects 0.000 abstract description 4
- 238000011105 stabilization Methods 0.000 abstract description 4
- NJPPVKZQTLUDBO-UHFFFAOYSA-N novaluron Chemical compound C1=C(Cl)C(OC(F)(F)C(OC(F)(F)F)F)=CC=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F NJPPVKZQTLUDBO-UHFFFAOYSA-N 0.000 abstract description 2
- 230000001960 triggered effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
Abstract
本发明公开了请求消息处理方法、装置、计算机系统及可读存储介质,基于基架运维,包括以下步骤:S1:启动主进程并根据套接资源创设子进程,创设向所述子进程进行输出请求消息的消息通道和事件触发循环配置文件;S2:接收请求消息,根据所述请求消息从事件触发循环配置文件中获取触发规则,利用所述触发规则中的判断策略和匹配策略,获得与所述请求消息匹配的处理策略;S3:根据所述处理策略选择空闲状态的子进程对所述请求消息进行处理。本发明避免了在高峰期由于请求消息大量输入,导致需要创设大量的子进程,而出现的大量资源消耗的情况,以保证具有足够的资源对消息请求进行传输及处理,保证了性能的稳定,进而保证了数据传输速率及处理效率。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种请求消息处理方法、装置、计算机系统及可读存储介质。
背景技术
常规的,服务系统在接收到请求消息时,通常需要通过主进程创建子进程,并通过子进程处理请求消息;由于创建子进程要消耗服务系统的大量资源,因此,在请求信息高峰时段,服务系统很容易因需要创建大量子进程而消耗大量资源,导致服务系统的性能急剧下降,进而极大的降低了数据传输速率及处理效率。
发明内容
本发明的目的是提供请求消息处理方法、装置、计算机系统及可读存储介质,用于解决现有技术存在的问题。
为实现上述目的,本发明提供一种请求消息处理方法,包括以下步骤:
S1:启动主进程并根据套接资源创设子进程,创设向所述子进程进行输出请求消息的消息通道和事件触发循环配置文件;
S2:接收所述请求消息,根据所述请求消息从事件触发循环配置文件中获取触发规则,利用所述触发规则中的判断策略和匹配策略,获得与所述请求消息匹配的处理策略;
S3:根据所述处理策略选择空闲状态的子进程对所述请求消息进行处理。
上述方案中,所述步骤S1包括以下步骤:
S11:启动主进程并绑定套接字资源;其中,所述套接字资源中具有可与系统建立连接的客户端的套接字;
S12:调用listen函数监听套接字所对应的端口;
S13:调用fork函数创建子进程;建立用于向所述子进程输出请求消息的消息通道;
S14:创设用于对所述消息通道进行监听的事件触发循环配置文件。
上述方案中,所述步骤S2包括以下步骤:
S21:接收由所述主进程向所述消息通道输出的请求消息;
S22:根据所述请求消息提取所述事件触发循环配置文件中的触发规则;
S23:利用所述触发规则中的判断策略判断所述请求消息的请求类型;
S24:根据所述请求类型利用所述触发规则中的匹配策略确定处理策略。
上述方案中,所述步骤S23包括以下步骤:
S23-1:根据所述判断策略调用get_headers函数获得请求消息中的消息头;
S23-2:根据所述判断策略将所述消息头依次与连接协议集、数据发送协议集和寄存器协议集中的协议头比对,获取与所述消息头匹配的协议头;
S23-3:若所述协议头属于连接协议集,则判断所述消息请求的请求类型为连接请求;
若所述协议头属于数据发送协议集,则判断所述消息请求的请求类型为数据发送请求;
若所述协议头数据寄存器协议集,则判断所述消息请求的请求类型为寄存器发送请求;
所述步骤S24中的匹配策略包括以下步骤:
S24-1:若所述请求类型为连接请求,则在所述触发规则中获取连接策略;
S24-2:若所述请求类型为数据发送请求,则在所述触发规则中获取数据发送策略;
S24-3:若所述请求类型为寄存器发送请求,则在所述触发规则中获取寄存器发送策略。
上述方案中,所述步骤S3包括以下步骤:
S31-1:若获取的所述处理策略为连接策略,则根据所述连接策略选择空闲状态的子进程,并通过消息通道向所述子进程输出请求消息;将所述子进程的状态从空闲状态转为忙碌状态;
S31-2:通过连接策略调用accpet函数获取所述连接请求中的服务通信信息和客户通信信息;使所述子进程获得与所述服务通信信息匹配的服务端套接字,以及与所述客户通信信息匹配的客户端套接字;
S31-3:使所述服务端套接字根据所述连接请求与所述客户端套接字建立连接线程,并向客户端输出服务描述信息;其中,所述服务描述信息具有用于描述所述服务器端套接字的IP和端口号的信息;
S31-4:接收由所述客户端根据所述服务描述信息输出的确认信息;
S31-5:根据所述确认信息与所述客户端实现连接;
S31-6:在所述子进程中加入用于监听的资源序列;
S31-7:所述资源序列监听到由所述客户端输出的释放连接请求后,根据所述释放连接请求向所述客户端输出释放确认信息,并将所述子进程的忙碌状态转为空闲状态。
上述方案中,所述步骤S3包括以下步骤:
S32-1:若获取的所述处理策略为数据发送策略,则根据所述数据发送策略选择空闲状态的子进程,并通过消息通道向所述子进程输出请求消息;
S32-2:将所述子进程由空闲状态转为忙碌状态;
S32-3:所述子进程根据所述数据发送策略调用send函数将所述请求消息通过输出队列输出至后台程序,由所述后台程序对所述消息请求进行处理;
S32-4:接收由所述后台程序在接收到所述请求消息时所输出的后台接收信号;
S32-5:根据所述后台接收信号将所述子进程由忙碌状态转为空闲状态。
上述方案中,所述步骤S3包括以下步骤:
S33-1:若获取的所述处理策略为寄存器发送策略,则根据所述寄存器发送策略选择空闲状态的子进程,并通过消息通道向所述子进程输出请求消息;将所述子进程由空闲状态转为忙碌状态;
S33-2:所述子进程通过寄存器发送策略获取所述请求消息中的写入指针;
S33-3:根据所述写入指针确定接收所述请求消息的资源的地址;
S33-4:通过发送策略调用send函数将所述请求消息输出至所述资源;
S33-5:接收由所述资源在接收到所述请求消息时所输出的资源接收信号;
S33-6:根据所述资源接收信号将所述子进程由忙碌状态转为空闲状态。
为实现上述目的,本发明还提供一种请求消息处理装置,包括以下步骤:
启动创设模块,用于启动主进程并根据套接资源创设子进程,创设向所述子进程进行输出请求消息的消息通道和事件触发循环配置文件;
处理策略选择模块,用于接收所述请求消息,根据所述请求消息从事件触发循环配置文件中获取触发规则,利用所述触发规则中的判断策略和匹配策略,获得与所述请求消息匹配的处理策略;
消息处理模块,用于根据所述处理策略选择空闲状态的子进程对所述请求消息进行处理。
为实现上述目的,本发明还提供一种计算机系统,其包括多个计算机设备,各计算机设备包括存储器.处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述多个计算机设备的处理器执行所述计算机程序时共同实现上述请求消息处理方法的步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,其包括多个存储介质,各存储介质上存储有计算机程序,所述多个存储介质存储的所述计算机程序被处理器执行时共同实现上述请求消息处理方法的步骤。
本发明提供的请求消息处理方法、装置、计算机系统及可读存储介质,通过启动创设模块在启动主进程后创设子进程,并创设消息通道和事件触发循环配置文件,以预先在非高峰期创设子进程和消息通道;再通过处理策略选择模块启动子进程以接收请求消息,并通过事件触发循环配置文件获取处理策略,通过根据不同的请求类型提供不同的处理策略;最后通过消息处理模块根据所述处理策略选择空闲状态的子进程对所述请求消息进行处理,以避免在高峰期由于请求消息大量输入,导致需要创设大量的子进程,而出现的大量资源消耗的情况,以保证具有足够的资源对消息请求进行传输及处理,保证了性能的稳定,进而保证了数据传输速率及处理效率。
附图说明
图1为本发明请求消息处理方法实施例一的流程图;
图2为本发明请求消息处理装置实施例二的程序模块示意图;
图3为本发明计算机系统实施例三中计算机设备的硬件结构示意图。
附图标记:
1、请求消息处理装置2、计算机设备11、启动创设模块
12、处理策略选择模块13、消息处理模块21、存储器22、处理器
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的请求消息处理方法、装置、计算机系统及可读存储介质,适用于通信领域,为提供一种基于启动创设模块、处理策略选择模块和消息处理模块的请求消息处理方法。本发明通过启动创设模块在启动主进程后创设子进程,并创设消息通道和事件触发循环配置文件,以预先在非高峰期创设子进程和消息通道;再通过处理策略选择模块启动子进程以接收请求消息,并通过事件触发循环配置文件获取处理策略,通过根据不同的请求类型提供不同的处理策略;最后通过消息处理模块根据所述处理策略选择空闲状态的子进程对所述请求消息进行处理,以避免在高峰期由于请求消息大量输入,导致需要创设大量的子进程,而出现的大量资源消耗的情况,以保证具有足够的资源对消息请求进行传输及处理,保证了性能的稳定,进而保证了数据传输速率及处理效率。
实施例一
请参阅图1,本实施例的一种请求消息处理方法,包括以下步骤:
S1:启动主进程并根据套接资源创设子进程,创设向所述子进程进行输出请求消息的消息通道和事件触发循环配置文件;
其中,主进程为用于接收请求消息的父进程,并且为子进程的创造者;所述子进程用于处理请求消息,并且只能对应一个主进程;
S2:接收所述请求消息,根据所述请求消息从事件触发循环配置文件中获取触发规则,利用所述触发规则中的判断策略和匹配策略,获得与所述请求消息匹配的处理策略;
S3:根据所述处理策略选择空闲状态的子进程对所述请求消息进行处理。
具体的,所述步骤S1包括以下步骤:
S11:启动主进程并绑定套接字资源;其中,所述套接字资源中具有可与系统建立连接的客户端的套接字;
S12:调用listen函数监听套接字所对应的端口;
S13:调用fork函数创建子进程;建立用于向所述子进程输出请求消息的消息通道;
其中,本步骤中,所述子进程可具有若干个;
S14:创设用于对所述消息通道进行监听的事件触发循环配置文件;
其中,当所述消息通道具有请求消息时,提取所述事件触发循环配置文件中的触发规则,并根据所述请求消息的类型,在所述触发规则中确定处理策略。
进一步的,所述主进程接收由输入队列输出的请求消息,并通过消息通道将所述请求消息输出至子进程。
进一步的,在输入队列中没有请求消息的情况下,所述主进程中的所有线程将自动阻塞,直到有请求消息放入输入队列,所述主进程将自动唤醒以接收所述请求消息。
具体的,所述步骤S2包括以下步骤:
S21:接收由所述主进程向所述消息通道输出的请求消息;
S22:根据所述请求消息提取所述事件触发循环配置文件中的触发规则;
其中,所述触发规则包括判断策略、处理策略和匹配策略;
所述判断策略用于获得所述请求消息的请求类型;
所述处理策略用于处理请求消息;
所述匹配策略用于确定各请求类型与各处理策略的对应关系。
进一步的,所述判断策略中指明了获得请求类型所调用的函数,以及用于判断请求类型的请求协议集;其中,所述请求数据集包括连接协议集、数据发送协议集和寄存器协议集;连接协议集、数据发送协议集和寄存器协议集中分别至少具有一个协议头;
进一步的,所述处理策略包括所述处理策略包括连接策略,数据发送策略和寄存器发送策略;
进一步的,所述连接策略与连接协议集对应,数据发送协议集与数据发送策略对应,寄存器协议集与寄存器发送策略对应;
进一步的,所述处理策略中指明了处理请求消息时所调用的程序和运行参数;
S23:利用所述触发规则中的判断策略判断所述请求消息的请求类型;
S24:根据所述请求类型利用所述触发规则中的匹配策略确定处理策略。
具体的,所述步骤S23包括以下步骤:
S23-1:根据所述判断策略调用get_headers函数获得请求消息中的消息头;
S23-2:根据所述判断策略将所述消息头依次与连接协议集、数据发送协议集和寄存器协议集中的协议头比对,获取与所述消息头匹配的协议头;
S23-3:若所述协议头属于连接协议集,则判断所述消息请求的请求类型为连接请求;
若所述协议头属于数据发送协议集,则判断所述消息请求的请求类型为数据发送请求;
若所述协议头数据寄存器协议集,则判断所述消息请求的请求类型为寄存器发送请求。
具体的,所述步骤S23中的判断策略包括以下步骤:
S23-01:调用get_headers函数获得请求消息中的消息头;其中,所述消息头为字符串;
S23-02:将所述消息头以空格为分隔符进行分割,获得消息词集;其中,所述消息词集中至少具有一个单词;
S23-03:将消息词集中的所有单词依次与连接协议集中的协议头进行比对,若所述消息词集具有与所述连接协议集中某一协议头一致的单词,则判断所述消息请求的请求类型为连接请求,并进入步骤S24;
若所述消息词集中所有单词与所述连接协议集中的协议头均不一致,则进入步骤S23-04;
S23-04将消息词集中的所有单词依次数据发送协议集中的协议头进行比对,若所述消息词集具有与所述数据发送协议集中某一协议头一致的单词,则判断所述消息请求的请求类型为数据发送请求,并进入步骤S24;
若所述消息词集中所有单词与所述数据发送协议集中的协议头均不一致,则进入步骤S23-05;
S23-05将消息词集中的所有单词依次寄存器协议集中的协议头进行比对,若所述消息词集具有与所述寄存器协议集中某一协议头一致的单词,则判断所述消息请求的请求类型为寄存器发送请求,并进入步骤S24;
若所述消息词集中所有单词与所述寄存器协议集中的协议头均不一致,则生成消息错误信息,并丢弃所述消息请求。
例如:所述连接协议集中包括但不限于Connection、Content-Disposition、Status等协议头;
所述数据发送协议集包括但不限于Accept、Accept-Charset、Accept-Encoding、Accept-Language、Accept-Datetime等协议头;
所述寄存器协议集包括但不限于Link、Allow、Location等协议头。
其中,具有所述寄存器协议集的协议头的消息请求,可由FIFO(先入先出)寄存器输出,在所述FIFO寄存器输出的消息请求中具有写入指针,所述写入指针具有用于描述与请求消息匹配的资源的地址信息;所述资源与生成请求消息并将所述请求消息输出至所述FIFO寄存器的模块匹配。
具体的,所述步骤S24中的匹配策略包括以下步骤:
S24-1:若所述请求类型为连接请求,则在所述触发规则中获取连接策略;
S24-2:若所述请求类型为数据发送请求,则在所述触发规则中获取数据发送策略;
S24-3:若所述请求类型为寄存器发送请求,则在所述触发规则中获取寄存器发送策略。
具体的,所述步骤S3包括以下步骤:
S31-1:若获取的所述处理策略为连接策略,则根据所述连接策略选择空闲状态的子进程,并通过消息通道向所述子进程输出请求消息;将所述子进程的状态从空闲状态转为忙碌状态;
S31-2:通过连接策略调用accpet函数获取所述连接请求中的服务通信信息和客户通信信息;使所述子进程获得与所述服务通信信息匹配的服务端套接字,以及与所述客户通信信息匹配的客户端套接字;
其中,所述客户通信信息具有用于描述客户端套接字的IP和端口号的信息,所述服务通信信息具有用于描述服务器端套接字的IP和端口号的信息;
S31-3:使所述服务端套接字根据所述连接请求与所述客户端套接字建立连接线程,并向客户端输出服务描述信息;其中,所述服务描述信息具有用于描述所述服务器端套接字的IP和端口号的信息;
S31-4:接收由所述客户端根据所述服务描述信息输出的确认信息;
S31-5:根据所述确认信息与所述客户端实现连接;
S31-6:在所述子进程中加入用于监听的资源序列;
S31-7:所述资源序列监听到由所述客户端输出的释放连接请求后,根据所述释放连接请求向所述客户端输出释放确认信息,并将所述子进程的忙碌状态转为空闲状态。
进一步的,所述步骤S3还包括以下步骤:
S32-1:若获取的所述处理策略为数据发送策略,则根据所述数据发送策略选择空闲状态的子进程,并通过消息通道向所述子进程输出请求消息;
S32-2:将所述子进程由空闲状态转为忙碌状态;
S32-3:所述子进程根据所述数据发送策略调用send函数将所述请求消息通过输出队列输出至后台程序,由所述后台程序对所述消息请求进行处理;
S32-4:接收由所述后台程序在接收到所述请求消息时所输出的后台接收信号;
S32-5:根据所述后台接收信号将所述子进程由忙碌状态转为空闲状态。
进一步的,所述步骤S3还包括以下步骤:
S33-1:若获取的所述处理策略为寄存器发送策略,则根据所述寄存器发送策略选择空闲状态的子进程,并通过消息通道向所述子进程输出请求消息;将所述子进程由空闲状态转为忙碌状态;
S33-2:所述子进程通过寄存器发送策略获取所述请求消息中的写入指针;
S33-3:根据所述写入指针确定接收所述请求消息的资源的地址;
S33-4:通过发送策略调用send函数将所述请求消息输出至所述资源;
S33-5:接收由所述资源在接收到所述请求消息时所输出的资源接收信号;
S33-6:根据所述资源接收信号将所述子进程由忙碌状态转为空闲状态。
实施例二
请参阅图3,本实施例的一种请求消息处理装置1,包括以下步骤:
启动创设模块11,用于启动主进程并根据套接资源创设子进程,创设向所述子进程进行输出请求消息的消息通道和事件触发循环配置文件;
处理策略选择模块12,用于接收所述请求消息,根据所述请求消息从事件触发循环配置文件中获取触发规则,利用所述触发规则中的判断策略和匹配策略,获得与所述请求消息匹配的处理策略;
消息处理模块13,用于根据所述处理策略选择空闲状态的子进程对所述请求消息进行处理。
本技术方案基于基架运维,通过启动创设模块在启动主进程后创设子进程,并创设消息通道和事件触发循环配置文件,以预先在非高峰期创设子进程和消息通道;再通过处理策略选择模块启动子进程以接收请求消息,并通过事件触发循环配置文件获取处理策略,通过根据不同的请求类型提供不同的处理策略;最后通过消息处理模块根据所述处理策略选择空闲状态的子进程对所述请求消息进行处理,从而实现软件监控,进而实现流量监控的技术效果,以避免在高峰期由于请求消息大量输入,导致需要创设大量的子进程,而出现的大量资源消耗的情况,保证了性能的稳定,以及数据传输速率和处理效率。
实施例三:
为实现上述目的,本发明还提供一种计算机设备2,实施例二的请求消息处理装置1的组成部分可分散于不同的计算机设备2中,计算机设备2可以是执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备至少包括但不限于:可通过系统总线相互通信连接的存储器21、处理器22,如图3所示。需要指出的是,图3仅示出了具有组件-的计算机设备,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器21(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例一的请求消息处理装置的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行请求消息处理装置,以实现实施例一的请求消息处理方法。
实施例四:
为实现上述目的,本发明还提供一种计算机可读存储系统,其包括多个存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器22执行时实现相应功能。本实施例的计算机可读存储介质用于存储请求消息处理装置,被处理器22执行时实现实施例一的请求消息处理方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种请求消息处理方法,其特征在于,包括以下步骤:
S1:启动主进程并根据套接资源创设子进程,创设向所述子进程进行输出请求消息的消息通道和事件触发循环配置文件;
S2:接收所述请求消息,根据所述请求消息从事件触发循环配置文件中获取触发规则,利用所述触发规则中的判断策略和匹配策略,获得与所述请求消息匹配的处理策略;
S3:根据所述处理策略选择空闲状态的子进程对所述请求消息进行处理。
2.根据权利要求1所述的请求消息处理方法,其特征在于,所述步骤S1包括以下步骤:
S11:启动主进程并绑定套接字资源;其中,所述套接字资源中具有可与系统建立连接的客户端的套接字;
S12:调用listen函数监听套接字所对应的端口;
S13:调用fork函数创建子进程;建立用于向所述子进程输出请求消息的消息通道;
S14:创设用于对所述消息通道进行监听的事件触发循环配置文件。
3.根据权利要求1所述的请求消息处理方法,其特征在于,所述步骤S2包括以下步骤:
S21:接收由所述主进程向所述消息通道输出的请求消息;
S22:根据所述请求消息提取所述事件触发循环配置文件中的触发规则;
S23:利用所述触发规则中的判断策略判断所述请求消息的请求类型;
S24:根据所述请求类型利用所述触发规则中的匹配策略确定处理策略。
4.根据权利要求3所述的请求消息处理方法,其特征在于,所述步骤S23包括以下步骤:
S23-1:根据所述判断策略调用get_headers函数获得请求消息中的消息头;
S23-2:根据所述判断策略将所述消息头依次与连接协议集、数据发送协议集和寄存器协议集中的协议头比对,获取与所述消息头匹配的协议头;
S23-3:若所述协议头属于连接协议集,则判断所述消息请求的请求类型为连接请求;
若所述协议头属于数据发送协议集,则判断所述消息请求的请求类型为数据发送请求;
若所述协议头数据寄存器协议集,则判断所述消息请求的请求类型为寄存器发送请求;
所述步骤S24中的匹配策略包括以下步骤:
S24-1:若所述请求类型为连接请求,则在所述触发规则中获取连接策略;
S24-2:若所述请求类型为数据发送请求,则在所述触发规则中获取数据发送策略;
S24-3:若所述请求类型为寄存器发送请求,则在所述触发规则中获取寄存器发送策略。
5.根据权利要求4所述的请求消息处理方法,其特征在于,所述步骤S3包括以下步骤:
S31-1:若获取的所述处理策略为连接策略,则根据所述连接策略选择空闲状态的子进程,并通过消息通道向所述子进程输出请求消息;将所述子进程的状态从空闲状态转为忙碌状态;
S31-2:通过连接策略调用accpet函数获取所述连接请求中的服务通信信息和客户通信信息;使所述子进程获得与所述服务通信信息匹配的服务端套接字,以及与所述客户通信信息匹配的客户端套接字;
S31-3:使所述服务端套接字根据所述连接请求与所述客户端套接字建立连接线程,并向客户端输出服务描述信息;其中,所述服务描述信息具有用于描述所述服务器端套接字的IP和端口号的信息;
S31-4:接收由所述客户端根据所述服务描述信息输出的确认信息;
S31-5:根据所述确认信息与所述客户端实现连接;
S31-6:在所述子进程中加入用于监听的资源序列;
S31-7:所述资源序列监听到由所述客户端输出的释放连接请求后,根据所述释放连接请求向所述客户端输出释放确认信息,并将所述子进程的忙碌状态转为空闲状态。
6.根据权利要求4所述的请求消息处理方法,其特征在于,所述步骤S3包括以下步骤:
S32-1:若获取的所述处理策略为数据发送策略,则根据所述数据发送策略选择空闲状态的子进程,并通过消息通道向所述子进程输出请求消息;
S32-2:将所述子进程由空闲状态转为忙碌状态;
S32-3:所述子进程根据所述数据发送策略调用send函数将所述请求消息通过输出队列输出至后台程序,由所述后台程序对所述消息请求进行处理;
S32-4:接收由所述后台程序在接收到所述请求消息时所输出的后台接收信号;
S32-5:根据所述后台接收信号将所述子进程由忙碌状态转为空闲状态。
7.根据权利要求4所述的请求消息处理方法,其特征在于,所述步骤S3包括以下步骤:
S33-1:若获取的所述处理策略为寄存器发送策略,则根据所述寄存器发送策略选择空闲状态的子进程,并通过消息通道向所述子进程输出请求消息;将所述子进程由空闲状态转为忙碌状态;
S33-2:所述子进程通过寄存器发送策略获取所述请求消息中的写入指针;
S33-3:根据所述写入指针确定接收所述请求消息的资源的地址;
S33-4:通过发送策略调用send函数将所述请求消息输出至所述资源;
S33-5:接收由所述资源在接收到所述请求消息时所输出的资源接收信号;
S33-6:根据所述资源接收信号将所述子进程由忙碌状态转为空闲状态。
8.一种请求消息处理装置,其特征在于,包括以下步骤:
启动创设模块,用于启动主进程并根据套接资源创设子进程,创设向所述子进程进行输出请求消息的消息通道和事件触发循环配置文件;
处理策略选择模块,用于接收所述请求消息,根据所述请求消息从事件触发循环配置文件中获取触发规则,利用所述触发规则中的判断策略和匹配策略,获得与所述请求消息匹配的处理策略;
消息处理模块,用于根据所述处理策略选择空闲状态的子进程对所述请求消息进行处理。
9.一种计算机系统,其包括多个计算机设备,各计算机设备包括存储器.处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述多个计算机设备的处理器执行所述计算机程序时共同实现权利要求1至7任一项所述请求消息处理方法的步骤。
10.一种计算机可读存储介质,其包括多个存储介质,各存储介质上存储有计算机程序,其特征在于,所述多个存储介质存储的所述计算机程序被处理器执行时共同实现权利要求1至7任一项所述请求消息处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910527384.5A CN110333916B (zh) | 2019-06-18 | 2019-06-18 | 请求消息处理方法、装置、计算机系统及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910527384.5A CN110333916B (zh) | 2019-06-18 | 2019-06-18 | 请求消息处理方法、装置、计算机系统及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110333916A true CN110333916A (zh) | 2019-10-15 |
CN110333916B CN110333916B (zh) | 2024-03-19 |
Family
ID=68142160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910527384.5A Active CN110333916B (zh) | 2019-06-18 | 2019-06-18 | 请求消息处理方法、装置、计算机系统及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110333916B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111008087A (zh) * | 2019-12-25 | 2020-04-14 | 上海众源网络有限公司 | 一种消息处理方法及装置 |
CN114090112A (zh) * | 2021-10-27 | 2022-02-25 | 青岛海尔科技有限公司 | 配置文件的加载方法和装置、存储介质及电子装置 |
CN114968551A (zh) * | 2022-03-10 | 2022-08-30 | 中移互联网有限公司 | 一种进程管理的方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1202521A1 (en) * | 2000-10-31 | 2002-05-02 | Hewlett-Packard Company, A Delaware Corporation | A method for processing in a gatekeeper of an internet protocol network |
CN101436959A (zh) * | 2008-12-18 | 2009-05-20 | 中国人民解放军国防科学技术大学 | 基于后台管控架构的并行仿真任务分发与调度方法 |
CN104750545A (zh) * | 2013-12-27 | 2015-07-01 | 乐视网信息技术(北京)股份有限公司 | 一种调度进程的方法及装置 |
WO2015096656A1 (zh) * | 2013-12-26 | 2015-07-02 | 华为技术有限公司 | 线程创建方法、业务请求处理方法及相关设备 |
CN106716404A (zh) * | 2014-09-24 | 2017-05-24 | 甲骨文国际公司 | 计算机子网内的代理服务器 |
-
2019
- 2019-06-18 CN CN201910527384.5A patent/CN110333916B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1202521A1 (en) * | 2000-10-31 | 2002-05-02 | Hewlett-Packard Company, A Delaware Corporation | A method for processing in a gatekeeper of an internet protocol network |
CN101436959A (zh) * | 2008-12-18 | 2009-05-20 | 中国人民解放军国防科学技术大学 | 基于后台管控架构的并行仿真任务分发与调度方法 |
WO2015096656A1 (zh) * | 2013-12-26 | 2015-07-02 | 华为技术有限公司 | 线程创建方法、业务请求处理方法及相关设备 |
CN104750545A (zh) * | 2013-12-27 | 2015-07-01 | 乐视网信息技术(北京)股份有限公司 | 一种调度进程的方法及装置 |
CN106716404A (zh) * | 2014-09-24 | 2017-05-24 | 甲骨文国际公司 | 计算机子网内的代理服务器 |
Non-Patent Citations (1)
Title |
---|
聂银亮: "移动即时消息协议的优化与实现", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》, no. 06, pages 136 - 167 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111008087A (zh) * | 2019-12-25 | 2020-04-14 | 上海众源网络有限公司 | 一种消息处理方法及装置 |
CN111008087B (zh) * | 2019-12-25 | 2024-03-15 | 上海众源网络有限公司 | 一种消息处理方法及装置 |
CN114090112A (zh) * | 2021-10-27 | 2022-02-25 | 青岛海尔科技有限公司 | 配置文件的加载方法和装置、存储介质及电子装置 |
CN114090112B (zh) * | 2021-10-27 | 2023-06-16 | 青岛海尔科技有限公司 | 配置文件的加载方法和装置、存储介质及电子装置 |
CN114968551A (zh) * | 2022-03-10 | 2022-08-30 | 中移互联网有限公司 | 一种进程管理的方法、装置、电子设备及存储介质 |
CN114968551B (zh) * | 2022-03-10 | 2023-09-19 | 中移互联网有限公司 | 一种进程管理的方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110333916B (zh) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111756601B (zh) | 微服务架构监控方法、装置、计算机设备及可读存储介质 | |
CN110333916A (zh) | 请求消息处理方法、装置、计算机系统及可读存储介质 | |
CN110232010A (zh) | 一种告警方法、告警服务器及监控服务器 | |
CN108055311B (zh) | Http异步请求方法、装置、服务器、终端和存储介质 | |
CN111813573B (zh) | 管理平台与机器人软件的通信方法及其相关设备 | |
CN108011909B (zh) | 通信方法和系统、电子设备和计算机集群 | |
CN111858007A (zh) | 一种基于消息中间件的任务调度方法方法和装置 | |
CN110830548A (zh) | 物联网卡运营平台、数据更新方法、装置及存储介质 | |
CN112437047A (zh) | 一种远程服务器管理方法、系统及相关装置 | |
CN112437001B (zh) | 保证消息可靠性投递与消费方法、装置 | |
CN111737022A (zh) | 一种基于微服务的接口调用方法、系统、设备及介质 | |
CN110311938A (zh) | 基于redis的请求处理方法、装置、网关及系统 | |
CN108241616B (zh) | 消息推送方法和装置 | |
CN113254274A (zh) | 消息处理方法、装置、存储介质以及服务器 | |
CN109002286A (zh) | 基于同步编程的数据异步处理方法及装置 | |
CN110413398B (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
CN109040491A (zh) | 挂机行为处理方法、装置、计算机设备及存储介质 | |
CN110569238A (zh) | 一种基于大数据的数据治理方法、系统、存储介质和服务端 | |
CN109815081A (zh) | 数据库性能的远程收集方法及收集装置 | |
CN110569178A (zh) | 基于大数据平台的接口预警方法和系统 | |
CN115439250A (zh) | 一种交易请求的处理方法及装置、存储介质、电子装置 | |
CN115426361A (zh) | 分布式客户端打包方法、装置、主服务器及存储介质 | |
CN114827157A (zh) | 集群任务处理方法、装置、系统、电子设备及可读介质 | |
CN112333262A (zh) | 数据更新提示方法、装置、计算机设备及可读存储介质 | |
CN106850283B (zh) | 一种基于事件驱动的云ac告警处理系统及方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |