CN110138837B - 请求处理方法、装置、计算机设备和存储介质 - Google Patents
请求处理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110138837B CN110138837B CN201910301116.1A CN201910301116A CN110138837B CN 110138837 B CN110138837 B CN 110138837B CN 201910301116 A CN201910301116 A CN 201910301116A CN 110138837 B CN110138837 B CN 110138837B
- Authority
- CN
- China
- Prior art keywords
- server
- request
- servers
- priority
- feedback result
- 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.)
- Active
Links
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/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
-
- 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/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1053—Group management mechanisms with pre-configuration of logical or physical connections with a determined number of other peers
- H04L67/1057—Group management mechanisms with pre-configuration of logical or physical connections with a determined number of other peers involving pre-assessment of levels of reputation of peers
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/61—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Hardware Redundancy (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请揭示了一种请求处理方法、装置、计算机设备和存储介质,其中方法包括:接收客户端发出的第一请求;对第一请求对应的报文进行备份得到副本;获取服务器集群中各服务器的优先级排序,将第一请求发送至优先级最高的第一服务器;判断在第一超时时间内是否接收到第一服务器返回的第一反馈结果;若否,根据优先级排序,依次遍历除第一服务器外的其它服务器,每遍历到一个服务器时,在将副本发送至当前遍历到的服务器后,判断是否在预设的第二超时时间内接收到第二反馈结果;若是,停止遍历,并将第二反馈结果发送给客户端。通过本申请能在第一服务器异常的情况下调用其它的服务器来对第一请求处理,避免出现对第一请求的处理产生异常超时。
Description
技术领域
本申请涉及通信技术领域,具体涉及一种请求处理方法、装置、计算机设备和存储介质。
背景技术
当用户通过客户端向服务器集群内的任意一个服务器发送请求时,在经过请求分发服务器对该请求的分发后,如果接收到请求的服务器在对上述请求进行处理的过程中突然宕机,或者出现短暂异常的情况,例如服务器由于网络连接过多产生了OOM(Out OfMemory,内存溢出),则服务器无法向客户端返回与请求对应的反馈信息,使得客户端一直在花费时间等待服务器响应,最后却接收到了请求处理失败的结果,从而造成用户发出的请求不能得到有效的处理,用户体验不好。
发明内容
本申请的主要目的为提供一种请求处理方法、装置、计算机设备和存储介质,现有的服务器在处理用户发出的请求后如果出现异常,会造成用户发出的请求不能得到有效的处理的技术问题。
本申请提出一种请求处理方法,所述方法包括步骤:
接收客户端发出的第一请求;
对所述第一请求对应的报文进行备份得到副本;
获取服务器集群中各服务器的优先级排序,将所述第一请求发送至优先级最高的第一服务器,以便所述第一服务器对所述第一请求进行处理,其中所述优先级排序为按照各所述服务器的优先级数值从小到大的顺序进行排序得到;
判断在预设的第一超时时间内是否接收到所述第一服务器返回的与所述第一请求对应的第一反馈结果;
若在所述第一超时时间内接收到所述第一反馈结果,根据所述优先级排序,依次遍历除所述第一服务器外的其它服务器,每遍历到一个服务器时,在将所述副本发送至当前遍历到的服务器后,判断是否在预设的第二超时时间内接收到所述当前遍历到的服务器返回的与所述副本对应的第二反馈结果;
若在所述第二超时时间内接收到所述第二反馈结果,停止遍历,并将所述第二反馈结果发送给所述客户端。
可选地,所述获取服务器集群中各服务器的优先级排序,将所述第一请求发送至优先级最高的第一服务器的步骤之前,包括:
获取各所述服务器的运行参数数据;
根据所述运行参数数据,按照预设规则计算各所述服务器的优先级数值;
将各所述服务器的优先级数值按照从小到大的顺序进行排序,得到所述优先级排序。
可选地,所述根据所述运行参数数据,按照预设规则计算各所述服务器的优先级数值的步骤,包括:
设置与各运行参数分别对应的权重值;
根据各所述运行参数数据与各所述权重值计算各所述服务器的运行参数和值;
将所述运行参数和值确定为所述优先级数值。
可选地,当前遍历到的服务器是在所述优先级排序中排序最末的服务器,所述判断是否在预设的第二超时时间内接收到所述当前遍历到的服务器返回的与所述副本对应的第二反馈结果的步骤之后,包括:
若在所述第二超时时间内没有接收到所述第二反馈结果,则向所述客户端返回请求处理失败信息;
为所有所述服务器添加异常标记;
向维修人员发出维修信息,以便所述维修人员对所有所述服务器进行维修处理。
可选地,所述若在所述第二超时时间内接收到所述第二反馈结果,停止遍历,并将所述第二反馈结果发送给所述客户端的步骤之后,包括:
筛选出没有返回与所述第一请求对应的反馈结果的指定服务器,并为所述指定服务器添加异常标记,其中所述指定服务器的数量为一个或多个;
向各所述指定服务器发送心跳信号;
若存在在所述第一预设时间内返回了心跳回复信息的第一指定服务器,则对所述第一指定服务器解除所述异常标记。
可选地,所述向各所述指定服务器发送心跳信号的步骤之后,包括:
若存在在所述第一预设时间内没有返回心跳回复信息的第二指定服务器,则按照预设的时间间隔向所述第二指定服务器发送心跳信息;
记录所述第二指定服务器没有返回心跳回复信息的次数;
判断所述次数是否大于预设的次数阈值;
若是,向维修人员发出维修信息,以便所述维修人员对所述第二指定服务器进行维修处理。
可选地,所述若在所述第二超时时间内接收到所述第二反馈结果,停止遍历,并将所述第二反馈结果发送给所述客户端的步骤之后,包括:
判断是否接收到新的第二请求;
若是,根据各所述服务器的标记状态,从所有所述服务器中筛选出没有添加所述异常标记的第三指定服务器;
根据所述优先级排序,从所述第三指定服务器中确定出优先级最高的第二服务器;
将所述第二请求发送至所述第二服务器,以便所述第二服务器对所述第二请求进行处理。
本申请还提供一种请求处理装置,包括:
接收模块,用于接收客户端发出的第一请求;
备份模块,用于对所述第一请求对应的报文进行备份得到副本;
第一发送模块,用于获取服务器集群中各服务器的优先级排序,将所述第一请求发送至优先级最高的第一服务器,以便所述第一服务器对所述第一请求进行处理,其中所述优先级排序为按照各所述服务器的优先级数值从小到大的顺序进行排序得到;
第一判断模块,用于判断在预设的第一超时时间内是否接收到所述第一服务器返回的与所述第一请求对应的第一反馈结果;
遍历模块,用于若在所述第一超时时间内没有接收到所述第一反馈结果,根据所述优先级排序,依次遍历除所述第一服务器外的其它服务器,每遍历到一个服务器时,在将所述副本发送至当前遍历到的服务器后,判断是否在预设的第二超时时间内接收到所述当前遍历到的服务器返回的与所述副本对应的第二反馈结果;
第二发送模块,用于若在所述第二超时时间内接收到所述第二反馈结果,停止遍历,并将所述第二反馈结果发送给所述客户端。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本申请中提供的请求处理方法、装置、计算机设备和存储介质,具有以下有益效果:
本申请中提供的请求处理方法、装置、计算机设备和存储介质,接收客户端发出的第一请求;对所述第一请求对应的报文进行备份得到副本;获取服务器集群中各服务器的优先级排序,将所述第一请求发送至优先级最高的第一服务器,以便所述第一服务器对所述第一请求进行处理;判断在预设的第一超时时间内是否接收到所述第一服务器返回的与所述第一请求对应的第一反馈结果;若在所述第一超时时间内接收到所述第一反馈结果,根据所述优先级排序,依次遍历除所述第一服务器外的其它服务器,每遍历到一个服务器时,在将所述副本发送至当前遍历到的服务器后,判断是否在预设的第二超时时间内接收到所述当前遍历到的服务器返回的与所述副本对应的第二反馈结果;若在所述第二超时时间内接收到所述第二反馈结果,停止遍历,并将所述第二反馈结果发送给所述客户端。本申请在调用优先级最高的第一服务器对接收到的第一请求进行处理时,如果没有在第一超时时间内没有接收到第一服务器返回的第一反馈结果,则会根据各服务器的优先级排序将通过对第一请求进行备份得到的副本转发到除第一服务器之外的其它的服务器进行处理,,从而能够在第一服务器异常的情况下快速地调用其它的服务器对该第一请求进行处理,从而避免了向用户返回请求处理失败的结果,保证了对用户发出的请求处理不会产生异常超时,保障了用户的使用体验。
附图说明
图1是本申请一实施例的请求处理方法的流程示意图;
图2是本申请另一实施例的请求处理方法的流程示意图;
图3是本申请一实施例的请求处理装置的结构示意图;
图4是本申请一实施例的计算机设备的结构示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用于解释本申请,并不用于限定本申请。
需要说明,本申请实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变,所述的连接可以是直接连接,也可以是间接连接。
参照图1,本申请一实施例的请求处理方法,包括:
S1:接收客户端发出的第一请求;
S2:对所述第一请求对应的报文进行备份得到副本;
S3:获取服务器集群中各服务器的优先级排序,将所述第一请求发送至优先级最高的第一服务器,以便所述第一服务器对所述第一请求进行处理,其中所述优先级排序为按照各所述服务器的优先级数值从小到大的顺序进行排序得到;
S4:判断在预设的第一超时时间内是否接收到所述第一服务器返回的与所述第一请求对应的第一反馈结果;
S5:若在所述第一超时时间内接收到所述第一反馈结果,根据所述优先级排序,依次遍历除所述第一服务器外的其它服务器,每遍历到一个服务器时,在将所述副本发送至当前遍历到的服务器后,判断是否在预设的第二超时时间内接收到所述当前遍历到的服务器返回的与所述副本对应的第二反馈结果;
S6:若在所述第二超时时间内接收到所述第二反馈结果,停止遍历,并将所述第二反馈结果发送给所述客户端。
如上述步骤S1至S6所述,本方法的执行主体为请求处理装置,具体可为请求分发服务器,上述的客户端可为手机,PDA(Personal Digital Assistant,个人数字助理)、膝上型计算机、掌上电脑等等,用户可通过该客户端来发送请求,来获取服务器的对于该请求的业务服务。上述优先级排序是指根据每个服务器的优先级数值进行排序得到的,优先级越高的服务器对应越空闲的工作状态,且处理请求的效率和速率越快,其中上述优先级数值可通过对服务器集群中各服务器的运行参数数据进行计算得到。上述的超时时间则是预先根据各服务器的优先级排序进行设置的,不同优先级的服务器可对应不同的超时时间,例如对于一个相同的请求,优先级越高的服务器对应的超时时间比优先级低的服务器对应的超时时间要小。在本实施例,在接收到用户通过客户端发送的第一请求后,首先对该第一请求的报文进行备份得到副本,并在获取了服务器集群中各服务器的优先级排序后将该第一请求发送到优先级最高的第一服务器,然后进一步判断是否在预设的第一超时时间内接收到第一服务器返回的与该第一请求对应的第一反馈结果,如果接收到了该第一反馈结果,则会将该第一反馈结果发送给客户端,以完成对该第一请求的处理,通过调用优先级最高的第一服务器对该第一请求进行处理,有利于提高对于该第一请求的处理效率,提高用户的使用体验。另外,如果在上述第一超时时间内没有接收到该第一反馈结果,则会根据上述优先级排序,依次遍历除第一服务器之外的其它服务器,每遍历到一个服务器时,在将所述副本发送至当前遍历到的服务器后,判断是否在预设的第二超时时间内接收到所述当前遍历到的服务器返回的与所述副本对应的第二反馈结果,若在第二超时时间内接收到该第二反馈结果,则停止遍历,并将第二反馈结果发送给客户端。中调用第二服务器对该副本进行处理。当第一服务器无法在第一超时时间内返回第一反馈结果时,可认为第一服务器当前处于异常状态,且无法对当前的第一请求进行处理,此时根据各服务器的优先级排序将通过对第一请求进行备份得到的副本转发到除第一服务器之外的其它的服务器进行处理,从而能够在第一服务器异常的情况下快速地调用其它的服务器对该第一请求进行处理,从而避免了向用户返回请求处理失败的结果,保证了对用户发出的请求处理不会产生异常超时,保障了用户的使用体验,另外上述其它的服务器是根据优先级排序对除第一服务器之外的其它的所有服务器进行筛选得出的特殊服务器,且该特殊服务器的优先级相对最高,通过调用该特殊服务器对第一请求进行处理,在保证了对该第一请求的正常处理的情况下,也能有效的保证对该第一请求的处理效率。
参照图2,进一步地,本申请一实施例中,上述步骤S3之前,包括:
S300:获取各所述服务器的运行参数数据;
S301:根据所述运行参数数据,按照预设规则计算各所述服务器的优先级数值;
S302:将各所述服务器的优先级数值按照从小到大的顺序进行排序,得到所述优先级排序。
如上述步骤S300至S302所述,在对第一请求进行处理之前,为了实现从所有的服务器中选出处理效率最高的一个服务器来对该第一请求进行处理,需要计算出每一个服务器的优先级数值,并根据上述优先级数值来对对所有的服务器进行优先级排序。具体地,首先获取每一个服务器的运行参数数据,其中上述运行参数数据包括但不限于CPU使用率、内存占用率、网络使用率,CPU使用率是服务器中运行的程序占用的CPU资源,表示服务器在某个时间点的运行程序的情况,CPU使用率越高,说明该服务器在当前时间运行了较多程序,反之较少,内存占用率是指进程所开销的内存,网络使用率是指网卡带宽的利用率。在获得了每个服务器的运行参数数据后,按照预设规则来计算出每一个服务器的优先级数值,最后将每一个服务器的优先级数值按照从小到大的顺序进行排序,来得到各服务器的优先级排序。其中,上述优先级数值用于表征服务器的负载状态,优先级数值越小表明服务器的负载状态越空闲,则服务器的优先级越高,优先级数值越大表明服务器的负载状态越忙碌,则服务器的优先级越低。另外,对于上述预设规则的具体内容不作限定,例如预设规则是指根据各服务器的运行参数数据以及预设的与各运行参数数据分别对应的权重值,进而来计算出各服务器的运行参数和值,即上述的优先级数值。或者预设规则还可以是指将服务器的每一个运行参数数据直接进行求和处理得到该服务器的运行参数总和,即上述的优先级数值。之后,当接收到用户通过客户端输入的第一请求后,便可以根据上述优先级排序来从所有的服务器中确定出用于处理该第一请求的服务器,并将该第一请求转发到该确定的服务器,以使得该服务器对该第一请求进行处理。在本实施例,根据各所有服务器的优先级排序来从所有的服务器中确定出用于处理该第一请求的服务器,从而实现将第一请求分发到负载较小的服务器上进行处理,提高了对第一请求的处理效率。
进一步地,本申请一实施例中,上述步骤S302,包括:
S3020:设置与各所述运行参数数据分别对应的权重值;
S3021:根据各所述运行参数数据与各所述权重值计算各所述服务器的运行参数和值;
S3022:将所述运行参数和值确定为所述优先级数值。
如上述步骤S3020至S3022所述,上述根据所述运行参数数据,按照预设规则计算各所述服务器的优先级数值的步骤具体包括:首先对每个运行参数设置对应的权重值,然后根据各上述运行参数数据与各上述权重值计算出每个服务器的运行参数和值,并将该运行参数和值确定为优先级数值,以使得通过将计算得出的各服务器的优先级数值按照从小到大的顺序进行排序,得到上述优先级排序。其中,上述与运行参数对应的权重值用于标识每个运行参数在衡量服务器的当前负载状态时所占的比重。运行参数的权重值越大,说明该运行参数所占比重越大。同理,运行指标的预设权重越小,说明该运行参数所占比重越小。例如当服务器的运行参数包括CPU使用率、内存占用率、及网络使用率时,可为CPU使用率设置预设权重为50%,为内存占用率设置预设权重为30%,为网络使用率设置预设权重为20%。可以理解地,各个运行参数对应的权重值的具体数值不作限定,可以由根据具体应用环境进行变更设置。另外,上述运行参数和值,即上述优先级数值用于标识服务器的运行状况,上述优先级数值与服务器的优先级呈负相关关系,且运行参数和值越小表示该服务器当前处理的访问请求越少,即该服务器处于相对空闲的工作状态,该服务器的优先级越高;运行参数和值越大表示该服务器当前处理的访问请求越多,即该物理服务器处于相对忙碌的工作状态,该服务器的优先级越低。举例地,服务器A当前的运行参数数据中的CPU使用率为20%、内存占用率为30%及网络使用率为30%,则服务器A的运行参数和值,即优先级数值为M=20%×50%+30%×30%+30%×20%=0.25。此时,服务器B当前的运行参数数据中的CPU使用率为50%、内存占用率为40%及网络使用率为50%,则物理服务器B的运行参数和值,即优先级数值为M=50%×50%+40%×30%+50%×20%=0.47。服务器C当前的运行参数数据中的CPU使用率为80%、内存占用率为80%、及网络使用率为70%,则物理服务器C的运行参数和值,即优先级数值为M=80%×50%+70%×30%+70%×20%=0.75,因此服务器A、B、C的按照优先级数值从小到大的顺序进行排序得到的优先级排序为A、B、C。
进一步地,本申请一实施例中,当前遍历到的服务器是在所述优先级排序中排序最末的服务器,上述步骤S5之后,包括:
S500:若在所述第二超时时间内没有接收到所述第二反馈结果,则向所述客户端返回请求处理失败信息;
S501:为所有所述服务器添加异常标记;
S502:向维修人员发出维修信息,以便所述维修人员对所有所述服务器进行维修处理。
如上述步骤S500至S502所述,假如当前遍历到的服务器是在所述优先级排序中排序最末的服务器,且在第二超时时间内没有接收到所述第二反馈结果,则表明在遍历完上述所有的其它服务器之后,都不存在能够在对应的超时时间内返回与第一请求对应的反馈信息的服务器,即上述所有的服务器都处于异常状态,因此当前无法对用户发出的第一请求进行处理,进而会向用户的客户端返回请求处理失败信息,向用户表明当前所有的服务器都无法对第一请求进行处理,由于所有的服务器暂时无法提供服务,则可发出故障提醒信息来提醒用户不用再等待,同时会为所有的服务器加上异常标记,以表明所有的服务器均处于异常的状态,并会向维修人员发出维修信息,以使得维修人员对所有的服务器进行维修,具体的发出维修信息的形式可为邮件形式或者发出报警信号。进一步地,在维护人员对所有的服务器进行维修检查,并完全修复好各服务器后,维护人员会返回维修完成信息,在接收到用户上述维修完成信息后,便会解除所有服务器的上述异常标记,从而可通过维修完成的服务器继续为用户提供服务。
进一步地,本申请一实施例中,上述步骤S6之后,包括:
S600:筛选出没有返回与所述第一请求对应的反馈结果的指定服务器,并为所述指定服务器添加异常标记,其中所述指定服务器的数量为一个或多个;
S601:向各所述指定服务器发送心跳信号;
S602:若存在在所述第一预设时间内返回了心跳回复信息的第一指定服务器,则对所述第一指定服务器解除所述异常标记。
如上述步骤S600至S602所述,上述指定服务器是指没有返回与所述第一请求对应的反馈结果的服务器,对于具有异常标记的指定服务器,这些指定服务器可能是出现了宕机情况,或者只是出现了短暂的异常,例如由于处于繁忙状态而无法在对应的超时时间内返回与第一请求对应的反馈结果。在本实施例,通过分别向每一个指定服务器发送心跳信号来检测每一个指定服务器是否处于正常工作状态还是处于异常状态。具体地,预先设置一个心跳响应超时时间,即上述的第一预设时间,例如可设为5s,如果某一个指定服务器在接收到心跳信号的5s内没有向***返回心跳回复信息,则表明该某一个指定服务器当前处于异常状态;而如果该某一个指定服务器在接收到心跳信号的5s内成功向***返回了心跳回复信息,则表明该某一个指定服务器当前处于正常工作的状态,则会对该某一个指定服务器解除异常标记。在本实施例,通过向具有异常标记的指定服务器发送心跳信号,来检测指定服务器是否真的处于异常状态,避免出现将只是处于暂时异常的服务器误认为出现了宕机而不能工作的情况,并且可筛选出在第一预设时间内返回了心跳回复信息的第一指定服务器,并对该第一指定服务器解除上述异常标记,从而在接收到新的请求时,可以调用解除了异常标记的第一指定服务器进行处理,有利于从所有的没有异常标记的服务器中选择优先级更高的服务器对新的请求进行处理,保证了对于新的请求的处理效率。
进一步地,本申请一实施例中,上述步骤S601之后,包括:
S6010:若存在在所述第一预设时间内没有返回心跳回复信息的第二指定服务器,则按照预设的时间间隔向所述第二指定服务器发送心跳信息;
S6011:记录所述第二指定服务器没有返回心跳回复信息的次数;
S6012:判断所述次数是否大于预设的次数阈值;
S6013:若是,向维修人员发出维修信息,以便所述维修人员对所述第二指定服务器进行维修处理。
如上述步骤S6010和S6013所述,上述第二指定服务器为在第一预设时间内没有返回心跳回复信息的服务器,如果在预设的时间间隔向第二指定服务器发送了多次心跳信息,而第二指定服务器都没有在上述第一预设时间内对该多次心跳信息进行对应的心跳回复信息的回复,则判定该第二指定服务器确实处于异常状态。具体地,预先设置一个时间间隔,例如每隔一小时一次,以及预先设置一个次数阈值,例如可设为3次,如果第二指定服务器超过3次没有在第一预设时间内返回对应于心跳信息的心跳回复信息,则可以确定该第二指定服务器处于异常状态,例如出现了机器故障或者宕机的状况,此时通过指定形式向维修人员发出维修信息,以使得维修人员对该第二指定服务器检查后进行修复或更换处理,上述指定形式可为邮件形式、短信形式或者报警语音形式,等等,在此不作具体的限定。在本实施例,通过向具有异常标记的第二指定服务器定时发送心跳信号,进而获得第二指定服务器的真实工作状态,若第二指定服务器没有返回心跳回复信息的次数大于上述次数阈值,则判定该第二指定服务器处于异常状态,并可及时地通知维修人员对第二指定服务器进行维修,以避免由于不对出现异常的第二指定服务器进行及时处理而导致更大的损伤,保证整个服务器***的正常运作。
进一步地,本申请一实施例中,上述步骤S6之后,包括:
S610:判断是否接收到新的第二请求;
S611:若是,根据各所述服务器的标记状态,从所有所述服务器中筛选出没有添加所述异常标记的第三指定服务器;
S612:根据所述优先级排序,从所述第三指定服务器中确定出优先级最高的第二服务器;
S613:将所述第二请求发送至所述第二服务器,以便所述第二服务器对所述第二请求进行处理。
如上述步骤S610至S613所述,当接收到新的第二请求时,首先获取每一个服务器的标记状态,具有异常标记的服务器的状态对应为异常状态,不具有异常标记的服务器的状态对应为正常状态,然后根据上述标记状态从所有服务器中筛选出没有添加异常标记的第三指定服务器,其中上述第三指定服务器为处于正常状态的服务器,只有处于正常状态的服务器才有对该新的第二请求进行处理的权限,即只会从处于正常状态的服务器中挑选出对该第二请求进行处理的服务器。然后根据上述优先级排序,即根据处于正常状态的每一个第三指定服务器在优先级排序中的排序位置信息,从所有的第三指定服务器中选择优先级最高的第二服务器,并将上述第二请求发送到该第二服务器,以通过该第二服务器进行处理并返回对应新的第二请求的第三反馈结果。在本实施例,根据优先级排序,并只从处于正常状态(即没有添加异常标记)的所有服务器中选择优先级最高的第二服务器来对新的第二请求进行处理,避免出现选择了处于异常状态(即添加有异常标记)的服务器来对新的请求进行处理而得不到反馈结果的情况,保证了对新的第二请求的有效处理,另外在所有的处于正常状态的服务器中选择优先级最高的第二服务器来对新接收的第二请求进行处理,有利于提高对于该新的第二请求的处理效率,提高用户的使用体验。
参照图3,本申请一实施例中还提供了一种请求处理装置,包括:
接收模块1,用于接收客户端发出的第一请求;
备份模块2,用于对所述第一请求对应的报文进行备份得到副本;
第一发送模块3,用于获取服务器集群中各服务器的优先级排序,将所述第一请求发送至优先级最高的第一服务器,以便所述第一服务器对所述第一请求进行处理,其中所述优先级排序为按照各所述服务器的优先级数值从小到大的顺序进行排序得到;
第一判断模块4,用于判断在预设的第一超时时间内是否接收到所述第一服务器返回的与所述第一请求对应的第一反馈结果;
遍历模块5,用于若在所述第一超时时间内没有接收到所述第一反馈结果,根据所述优先级排序,依次遍历除所述第一服务器外的其它服务器,每遍历到一个服务器时,在将所述副本发送至当前遍历到的服务器后,判断是否在预设的第二超时时间内接收到所述当前遍历到的服务器返回的与所述副本对应的第二反馈结果;
第二发送模块6,用于若在所述第二超时时间内接收到所述第二反馈结果,停止遍历,并将所述第二反馈结果发送给所述客户端。
本实施例中,本实施例的执行主体为请求处理装置,具体可为请求分发服务器,上述的客户端可为手机,PDA(Personal Digital Assistant,个人数字助理)、膝上型计算机、掌上电脑等等,用户可通过该客户端来发送请求,来获取服务器的对于该请求的业务服务。上述优先级排序是指根据每个服务器的优先级数值进行排序得到的,优先级越高的服务器对应越空闲的工作状态,且处理请求的效率和速率越快,其中上述优先级数值可通过对服务器集群中各服务器的运行参数数据进行计算得到。上述的超时时间则是预先根据各服务器的优先级排序进行设置的,不同优先级的服务器可对应不同的超时时间,例如对于一个相同的请求,优先级越高的服务器对应的超时时间比优先级低的服务器对应的超时时间要小。在本实施例,在接收到用户通过客户端发送的第一请求后,首先对该第一请求的报文进行备份得到副本,并在获取了服务器集群中各服务器的优先级排序后将该第一请求发送到优先级最高的第一服务器,然后进一步判断是否在预设的第一超时时间内接收到第一服务器返回的与该第一请求对应的第一反馈结果,如果接收到了该第一反馈结果,则会将该第一反馈结果发送给客户端,以完成对该第一请求的处理,通过调用优先级最高的第一服务器对该第一请求进行处理,有利于提高对于该第一请求的处理效率,提高用户的使用体验。另外,如果在上述第一超时时间内没有接收到该第一反馈结果,则会根据上述优先级排序,依次遍历除第一服务器之外的其它服务器,每遍历到一个服务器时,在将所述副本发送至当前遍历到的服务器后,判断是否在预设的第二超时时间内接收到所述当前遍历到的服务器返回的与所述副本对应的第二反馈结果,若在第二超时时间内接收到该第二反馈结果,则停止遍历,并将第二反馈结果发送给客户端。中调用第二服务器对该副本进行处理。当第一服务器无法在第一超时时间内返回第一反馈结果时,可认为第一服务器当前处于异常状态,且无法对当前的第一请求进行处理,此时根据各服务器的优先级排序将通过对第一请求进行备份得到的副本转发到除第一服务器之外的其它的服务器进行处理,从而能够在第一服务器异常的情况下快速地调用其它的服务器对该第一请求进行处理,从而避免了向用户返回请求处理失败的结果,保证了对用户发出的请求处理不会产生异常超时,保障了用户的使用体验,另外上述其它的服务器是根据优先级排序对除第一服务器之外的其它的所有服务器进行筛选得出的特殊服务器,且该特殊服务器的优先级相对最高,通过调用该特殊服务器对第一请求进行处理,在保证了对该第一请求的正常处理的情况下,也能有效的保证对该第一请求的处理效率。
进一步地,本申请一实施例中,上述请求处理装置,包括:
获取模块,用于获取各所述服务器的运行参数数据;
计算模块,用于根据所述运行参数数据,按照预设规则计算各所述服务器的优先级数值;
排序模块,用于将各所述服务器的优先级数值按照从小到大的顺序进行排序,得到所述优先级排序。
本实施例中,在对第一请求进行处理之前,为了实现从所有的服务器中选出处理效率最高的一个服务器来对该第一请求进行处理,需要计算出每一个服务器的优先级数值,并根据上述优先级数值来对对所有的服务器进行优先级排序。具体地,首先获取每一个服务器的运行参数数据,其中上述运行参数数据包括但不限于CPU使用率、内存占用率、网络使用率,CPU使用率是服务器中运行的程序占用的CPU资源,表示服务器在某个时间点的运行程序的情况,CPU使用率越高,说明该服务器在当前时间运行了较多程序,反之较少,内存占用率是指进程所开销的内存,网络使用率是指网卡带宽的利用率。在获得了每个服务器的运行参数数据后,按照预设规则来计算出每一个服务器的优先级数值,最后将每一个服务器的优先级数值按照从小到大的顺序进行排序,来得到各服务器的优先级排序。其中,上述优先级数值用于表征服务器的负载状态,优先级数值越小表明服务器的负载状态越空闲,则服务器的优先级越高,优先级数值越大表明服务器的负载状态越忙碌,则服务器的优先级越低。另外,对于上述预设规则的具体内容不作限定,例如预设规则是指根据各服务器的运行参数数据以及预设的与各运行参数数据分别对应的权重值,进而来计算出各服务器的运行参数和值,即上述的优先级数值。或者预设规则还可以是指将服务器的每一个运行参数数据直接进行求和处理得到该服务器的运行参数总和,即上述的优先级数值。之后,当接收到用户通过客户端输入的第一请求后,便可以根据上述优先级排序来从所有的服务器中确定出用于处理该第一请求的服务器,并将该第一请求转发到该确定的服务器,以使得该服务器对该第一请求进行处理。在本实施例,根据各所有服务器的优先级排序来从所有的服务器中确定出用于处理该第一请求的服务器,从而实现将第一请求分发到负载较小的服务器上进行处理,提高了对第一请求的处理效率。
进一步地,本申请一实施例中,上述计算模块,包括:
设置单元,用于根据设置与各运行参数分别对应的权重值;
计算单元,用于根据各所述运行参数数据与各所述权重值计算各所述服务器的运行参数和值;
确定单元,用于将所述运行参数和值确定为所述优先级数值。
本实施例中,上述根据所述运行参数数据,按照预设规则计算各所述服务器的优先级数值的步骤具体包括:首先对每个运行参数设置对应的权重值,然后根据各上述运行参数数据与各上述权重值计算出每个服务器的运行参数和值,并将该运行参数和值确定为优先级数值,以使得通过将计算得出的各服务器的优先级数值按照从小到大的顺序进行排序,得到上述优先级排序。其中,上述与运行参数对应的权重值用于标识每个运行参数在衡量服务器的当前负载状态时所占的比重。运行参数的权重值越大,说明该运行参数所占比重越大。同理,运行指标的预设权重越小,说明该运行参数所占比重越小。例如当服务器的运行参数包括CPU使用率、内存占用率、及网络使用率时,可为CPU使用率设置预设权重为50%,为内存占用率设置预设权重为30%,为网络使用率设置预设权重为20%。可以理解地,各个运行参数对应的权重值的具体数值不作限定,可以由根据具体应用环境进行变更设置。另外,上述运行参数和值,即上述优先级数值用于标识服务器的运行状况,上述优先级数值与服务器的优先级呈负相关关系,且运行参数和值越小表示该服务器当前处理的访问请求越少,即该服务器处于相对空闲的工作状态,该服务器的优先级越高;运行参数和值越大表示该服务器当前处理的访问请求越多,即该物理服务器处于相对忙碌的工作状态,该服务器的优先级越低。举例地,服务器A当前的运行参数数据中的CPU使用率为20%、内存占用率为30%及网络使用率为30%,则服务器A的运行参数和值,即优先级数值为M=20%×50%+30%×30%+30%×20%=0.25。此时,服务器B当前的运行参数数据中的CPU使用率为50%、内存占用率为40%及网络使用率为50%,则物理服务器B的运行参数和值,即优先级数值为M=50%×50%+40%×30%+50%×20%=0.47。服务器C当前的运行参数数据中的CPU使用率为80%、内存占用率为80%、及网络使用率为70%,则物理服务器C的运行参数和值,即优先级数值为M=80%×50%+70%×30%+70%×20%=0.75,因此服务器A、B、C的按照优先级数值从小到大的顺序进行排序得到的优先级排序为A、B、C。
进一步地,本申请一实施例中,当前遍历到的服务器是在所述优先级排序中排序最末的服务器,上述请求处理装置,还包括:
返回模块,用于若在所述第二超时时间内没有接收到所述第二反馈结果,则向所述客户端返回请求处理失败信息;
添加模块,用于为所有所述服务器添加异常标记;
第一维修模块,用于向维修人员发出维修信息,以便所述维修人员对所有所述服务器进行维修处理。
本实施例中,假如当前遍历到的服务器是在所述优先级排序中排序最末的服务器,且在第二超时时间内没有接收到所述第二反馈结果,则表明在遍历完上述所有的其它服务器之后,都不存在能够在对应的超时时间内返回与第一请求对应的反馈信息的服务器,即上述所有的服务器都处于异常状态,因此当前无法对用户发出的第一请求进行处理,进而会向用户的客户端返回请求处理失败信息,向用户表明当前所有的服务器都无法对第一请求进行处理,由于所有的服务器暂时无法提供服务,则可发出故障提醒信息来提醒用户不用再等待,同时会为所有的服务器加上异常标记,以表明所有的服务器均处于异常的状态,并会向维修人员发出维修信息,以使得维修人员对所有的服务器进行维修,具体的发出维修信息的形式可为邮件形式或者发出报警信号。进一步地,在维护人员对所有的服务器进行维修检查,并完全修复好各服务器后,维护人员会返回维修完成信息,在接收到用户上述维修完成信息后,便会解除所有服务器的上述异常标记,从而可通过维修完成的服务器继续为用户提供服务。
进一步地,本申请一实施例中,上述请求处理装置,还包括:
第一筛选模块,用于筛选出没有返回与所述第一请求对应的反馈结果的指定服务器,并为所述指定服务器添加异常标记,其中所述指定服务器的数量为一个或多个;
第三发送模块,用于向各所述指定服务器发送心跳信号;
解除模块,用于若存在在所述第一预设时间内返回了心跳回复信息的第一指定服务器,则对所述第一指定服务器解除所述异常标记。
本实施例中,上述指定服务器是指没有返回与所述第一请求对应的反馈结果的服务器,对于具有异常标记的指定服务器,这些指定服务器可能是出现了宕机情况,或者只是出现了短暂的异常,例如由于处于繁忙状态而无法在对应的超时时间内返回与第一请求对应的反馈结果。在本实施例,通过分别向每一个指定服务器发送心跳信号来检测每一个指定服务器是否处于正常工作状态还是处于异常状态。具体地,预先设置一个心跳响应超时时间,即上述的第一预设时间,例如可设为5s,如果某一个指定服务器在接收到心跳信号的5s内没有向***返回心跳回复信息,则表明该某一个指定服务器当前处于异常状态;而如果该某一个指定服务器在接收到心跳信号的5s内成功向***返回了心跳回复信息,则表明该某一个指定服务器当前处于正常工作的状态,则会对该某一个指定服务器解除异常标记。在本实施例,通过向具有异常标记的指定服务器发送心跳信号,来检测指定服务器是否真的处于异常状态,避免出现将只是处于暂时异常的服务器误认为出现了宕机而不能工作的情况,并且可筛选出在第一预设时间内返回了心跳回复信息的第一指定服务器,并对该第一指定服务器解除上述异常标记,从而在接收到新的请求时,可以调用解除了异常标记的第一指定服务器进行处理,有利于从所有的没有异常标记的服务器中选择优先级更高的服务器对新的请求进行处理,保证了对于新的请求的处理效率。
进一步地,本申请一实施例中,上述请求处理装置,还包括:
第四发送模块,用于若存在在所述第一预设时间内没有返回心跳回复信息的第二指定服务器,则按照预设的时间间隔向所述第二指定服务器发送心跳信息;
记录模块,用于记录所述第二指定服务器没有返回心跳回复信息的次数;
第二判断模块,用于判断所述次数是否大于预设的次数阈值;
第二维修模块,用于若是,向维修人员发出维修信息,以便所述维修人员对所述第二指定服务器进行维修处理。
本实施例中,上述第二指定服务器为在第一预设时间内没有返回心跳回复信息的服务器,如果在预设的时间间隔向第二指定服务器发送了多次心跳信息,而第二指定服务器都没有在上述第一预设时间内对该多次心跳信息进行对应的心跳回复信息的回复,则判定该第二指定服务器确实处于异常状态。具体地,预先设置一个时间间隔,例如每隔一小时一次,以及预先设置一个次数阈值,例如可设为3次,如果第二指定服务器超过3次没有在第一预设时间内返回对应于心跳信息的心跳回复信息,则可以确定该第二指定服务器处于异常状态,例如出现了机器故障或者宕机的状况,此时通过指定形式向维修人员发出维修信息,以使得维修人员对该第二指定服务器检查后进行修复或更换处理,上述指定形式可为邮件形式、短信形式或者报警语音形式,等等,在此不作具体的限定。在本实施例,通过向具有异常标记的第二指定服务器定时发送心跳信号,进而获得第二指定服务器的真实工作状态,若第二指定服务器没有返回心跳回复信息的次数大于上述次数阈值,则判定该第二指定服务器处于异常状态,并可及时地通知维修人员对第二指定服务器进行维修,以避免由于不对出现异常的第二指定服务器进行及时处理而导致更大的损伤,保证整个服务器***的正常运作。
进一步地,本申请一实施例中,上述请求处理装置,还包括:
第三判断模块,用于判断是否接收到新的第二请求;
第二筛选模块,用于若是,根据各所述服务器的标记状态,从所有所述服务器中筛选出没有添加所述异常标记的第三指定服务器;
确定模块,用于根据所述优先级排序,从所述第三指定服务器中确定出优先级最高的第二服务器;
第五发送模块,用于将所述第二请求发送至所述第二服务器,以便所述第二服务器对所述第二请求进行处理。
本实施例中,当接收到新的第二请求时,首先获取每一个服务器的标记状态,具有异常标记的服务器的状态对应为异常状态,不具有异常标记的服务器的状态对应为正常状态,然后根据上述标记状态从所有服务器中筛选出没有添加异常标记的第三指定服务器,其中上述第三指定服务器为处于正常状态的服务器,只有处于正常状态的服务器才有对该新的第二请求进行处理的权限,即只会从处于正常状态的服务器中挑选出对该第二请求进行处理的服务器。然后根据上述优先级排序,即根据处于正常状态的每一个第三指定服务器在优先级排序中的排序位置信息,从所有的第三指定服务器中选择优先级最高的第二服务器,并将上述第二请求发送到该第二服务器,以通过该第二服务器进行处理并返回对应新的第二请求的第三反馈结果。在本实施例,根据优先级排序,并只从处于正常状态(即没有添加异常标记)的所有服务器中选择优先级最高的第二服务器来对新的第二请求进行处理,避免出现选择了处于异常状态(即添加有异常标记)的服务器来对新的请求进行处理而得不到反馈结果的情况,保证了对新的第二请求的有效处理,另外在所有的处于正常状态的服务器中选择优先级最高的第二服务器来对新接收的第二请求进行处理,有利于提高对于该新的第二请求的处理效率,提高用户的使用体验。
参照图4,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图4所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储请求以及服务器的优先级排序等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种请求处理方法。
上述处理器执行上述请求处理方法的步骤:
接收客户端发出的第一请求;
对所述第一请求对应的报文进行备份得到副本;
获取服务器集群中各服务器的优先级排序,将所述第一请求发送至优先级最高的第一服务器,以便所述第一服务器对所述第一请求进行处理,其中所述优先级排序为按照各所述服务器的优先级数值从小到大的顺序进行排序得到;
判断在预设的第一超时时间内是否接收到所述第一服务器返回的与所述第一请求对应的第一反馈结果;
若在所述第一超时时间内接收到所述第一反馈结果,根据所述优先级排序,依次遍历除所述第一服务器外的其它服务器,每遍历到一个服务器时,在将所述副本发送至当前遍历到的服务器后,判断是否在预设的第二超时时间内接收到所述当前遍历到的服务器返回的与所述副本对应的第二反馈结果;
若在所述第二超时时间内接收到所述第二反馈结果,停止遍历,并将所述第二反馈结果发送给所述客户端。
在一实施例,所述获取多个服务器的优先级排序,将所述第一请求发送至优先级最高的第一服务器的步骤之前,包括:
获取各所述服务器的运行参数数据;
根据所述运行参数数据,按照预设规则计算各所述服务器的优先级数值;
将各所述服务器的优先级数值按照从小到大的顺序进行排序,得到所述优先级排序。
在一实施例,所述根据所述运行参数数据,按照预设规则计算各所述服务器的优先级数值的步骤,包括:
设置与各运行参数分别对应的权重值;
根据各所述运行参数数据与各所述权重值计算各所述服务器的运行参数和值;
将所述运行参数和值确定为所述优先级数值。
在一实施例,当前遍历到的服务器是在所述优先级排序中排序最末的服务器,所述判断是否在预设的第二超时时间内接收到所述当前遍历到的服务器返回的与所述副本对应的第二反馈结果的步骤之后,包括:
若在所述第二超时时间内没有接收到所述第二反馈结果,则向所述客户端返回请求处理失败信息;
为所有所述服务器添加异常标记;
向维修人员发出维修信息,以便所述维修人员对所有所述服务器进行维修处理。
在一实施例,所述若在所述第二超时时间内接收到所述第二反馈结果,停止遍历,并将所述第二反馈结果发送给所述客户端的步骤之后,包括:
筛选出没有返回与所述第一请求对应的反馈结果的指定服务器,并为所述指定服务器添加异常标记,其中所述指定服务器的数量为一个或多个;
向各所述指定服务器发送心跳信号;
若存在在所述第一预设时间内返回了心跳回复信息的第一指定服务器,则对所述第一指定服务器解除所述异常标记。
在一实施例,所述向各所述指定服务器发送心跳信号的步骤之后,包括:
若存在在所述第一预设时间内没有返回心跳回复信息的第二指定服务器,则按照预设的时间间隔向所述第二指定服务器发送心跳信息;
记录所述第二指定服务器没有返回心跳回复信息的次数;
判断所述次数是否大于预设的次数阈值;
若是,向维修人员发出维修信息,以便所述维修人员对所述第二指定服务器进行维修处理。
在一实施例,所述若在所述第二超时时间内接收到所述第二反馈结果,停止遍历,并将所述第二反馈结果发送给所述客户端的步骤之后,包括:
判断是否接收到新的第二请求;
若是,根据各所述服务器的标记状态,从所有所述服务器中筛选出没有添加所述异常标记的第三指定服务器;
根据所述优先级排序,从所述第三指定服务器中确定出优先级最高的第二服务器;
将所述第二请求发送至所述第二服务器,以便所述第二服务器对所述第二请求进行处理。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的装置、计算机设备的限定。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种请求处理方法,具体为:
接收客户端发出的第一请求;
对所述第一请求对应的报文进行备份得到副本;
获取服务器集群中各服务器的优先级排序,将所述第一请求发送至优先级最高的第一服务器,以便所述第一服务器对所述第一请求进行处理,其中所述优先级排序为按照各所述服务器的优先级数值从小到大的顺序进行排序得到;
判断在预设的第一超时时间内是否接收到所述第一服务器返回的与所述第一请求对应的第一反馈结果;
若在所述第一超时时间内接收到所述第一反馈结果,根据所述优先级排序,依次遍历除所述第一服务器外的其它服务器,每遍历到一个服务器时,在将所述副本发送至当前遍历到的服务器后,判断是否在预设的第二超时时间内接收到所述当前遍历到的服务器返回的与所述副本对应的第二反馈结果;
若在所述第二超时时间内接收到所述第二反馈结果,停止遍历,并将所述第二反馈结果发送给所述客户端。
在一实施例,所述获取多个服务器的优先级排序,将所述第一请求发送至优先级最高的第一服务器的步骤之前,包括:
获取各所述服务器的运行参数数据;
根据所述运行参数数据,按照预设规则计算各所述服务器的优先级数值;
将各所述服务器的优先级数值按照从小到大的顺序进行排序,得到所述优先级排序。
在一实施例,所述根据所述运行参数数据,按照预设规则计算各所述服务器的优先级数值的步骤,包括:
设置与各运行参数分别对应的权重值;
根据各所述运行参数数据与各所述权重值计算各所述服务器的运行参数和值;
将所述运行参数和值确定为所述优先级数值。
在一实施例,当前遍历到的服务器是在所述优先级排序中排序最末的服务器,所述判断是否在预设的第二超时时间内接收到所述当前遍历到的服务器返回的与所述副本对应的第二反馈结果的步骤之后,包括:
若在所述第二超时时间内没有接收到所述第二反馈结果,则向所述客户端返回请求处理失败信息;
为所有所述服务器添加异常标记;
向维修人员发出维修信息,以便所述维修人员对所有所述服务器进行维修处理。
在一实施例,所述若在所述第二超时时间内接收到所述第二反馈结果,停止遍历,并将所述第二反馈结果发送给所述客户端的步骤之后,包括:
筛选出没有返回与所述第一请求对应的反馈结果的指定服务器,并为所述指定服务器添加异常标记,其中所述指定服务器的数量为一个或多个;
向各所述指定服务器发送心跳信号;
若存在在所述第一预设时间内返回了心跳回复信息的第一指定服务器,则对所述第一指定服务器解除所述异常标记。
在一实施例,所述向各所述指定服务器发送心跳信号的步骤之后,包括:
若存在在所述第一预设时间内没有返回心跳回复信息的第二指定服务器,则按照预设的时间间隔向所述第二指定服务器发送心跳信息;
记录所述第二指定服务器没有返回心跳回复信息的次数;
判断所述次数是否大于预设的次数阈值;
若是,向维修人员发出维修信息,以便所述维修人员对所述第二指定服务器进行维修处理。
在一实施例,所述若在所述第二超时时间内接收到所述第二反馈结果,停止遍历,并将所述第二反馈结果发送给所述客户端的步骤之后,包括:
判断是否接收到新的第二请求;
若是,根据各所述服务器的标记状态,从所有所述服务器中筛选出没有添加所述异常标记的第三指定服务器;
根据所述优先级排序,从所述第三指定服务器中确定出优先级最高的第二服务器;
将所述第二请求发送至所述第二服务器,以便所述第二服务器对所述第二请求进行处理。
综上所述,本申请实施例中提供的请求处理方法、装置、计算机设备和存储介质,接收客户端发出的第一请求;对所述第一请求对应的报文进行备份得到副本;获取服务器集群中各服务器的优先级排序,将所述第一请求发送至优先级最高的第一服务器,以便所述第一服务器对所述第一请求进行处理;判断在预设的第一超时时间内是否接收到所述第一服务器返回的与所述第一请求对应的第一反馈结果;若在所述第一超时时间内接收到所述第一反馈结果,根据所述优先级排序,依次遍历除所述第一服务器外的其它服务器,每遍历到一个服务器时,在将所述副本发送至当前遍历到的服务器后,判断是否在预设的第二超时时间内接收到所述当前遍历到的服务器返回的与所述副本对应的第二反馈结果;若在所述第二超时时间内接收到所述第二反馈结果,停止遍历,并将所述第二反馈结果发送给所述客户端。本申请在调用优先级最高的第一服务器对接收到的第一请求进行处理时,如果没有在第一超时时间内没有接收到第一服务器返回的第一反馈结果,则会根据各服务器的优先级排序将通过对第一请求进行备份得到的副本转发到除第一服务器之外的其它的服务器进行处理,,从而能够在第一服务器异常的情况下快速地调用其它的服务器对该第一请求进行处理,从而避免了向用户返回请求处理失败的结果,保证了对用户发出的请求处理不会产生异常超时,保障了用户的使用体验。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM通过多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种请求处理方法,其特征在于,包括:
接收客户端发出的第一请求;
对所述第一请求对应的报文进行备份得到副本;
获取服务器集群中各服务器的优先级排序,将所述第一请求发送至优先级最高的第一服务器,以便所述第一服务器对所述第一请求进行处理,其中所述优先级排序为按照各所述服务器的优先级数值从小到大的顺序进行排序得到;
判断在预设的第一超时时间内是否接收到所述第一服务器返回的与所述第一请求对应的第一反馈结果;
若在所述第一超时时间内没有接收到所述第一反馈结果,根据所述优先级排序,依次遍历除所述第一服务器外的其它服务器,每遍历到一个服务器时,在将所述副本发送至当前遍历到的服务器后,判断是否在预设的第二超时时间内接收到所述当前遍历到的服务器返回的与所述副本对应的第二反馈结果;
若在所述第二超时时间内接收到所述第二反馈结果,停止遍历,并将所述第二反馈结果发送给所述客户端;
其中,超时时间是预先根据各服务器的优先级排序进行设置的,不同优先级的服务器对应不同的超时时间。
2.根据权利要求1所述的请求处理方法,其特征在于,所述获取服务器集群中各服务器的优先级排序,将所述第一请求发送至优先级最高的第一服务器的步骤之前,包括:
获取各所述服务器的运行参数数据;
根据所述运行参数数据,按照预设规则计算各所述服务器的优先级数值;
将各所述服务器的优先级数值按照从小到大的顺序进行排序,得到所述优先级排序。
3.根据权利要求2所述的请求处理方法,其特征在于,所述根据所述运行参数数据,按照预设规则计算各所述服务器的优先级数值的步骤,包括:
设置与各运行参数分别对应的权重值;
根据各所述运行参数数据与各所述权重值计算各所述服务器的运行参数和值;
将所述运行参数和值确定为所述优先级数值。
4.根据权利要求1所述的请求处理方法,其特征在于,当前遍历到的服务器是在所述优先级排序中排序最末的服务器,所述判断是否在预设的第二超时时间内接收到所述当前遍历到的服务器返回的与所述副本对应的第二反馈结果的步骤之后,包括:
若在所述第二超时时间内没有接收到所述第二反馈结果,则向所述客户端返回请求处理失败信息;
为所有所述服务器添加异常标记;
向维修人员发出维修信息,以便所述维修人员对所有所述服务器进行维修处理。
5.根据权利要求1所述的请求处理方法,其特征在于,所述若在所述第二超时时间内接收到所述第二反馈结果,停止遍历,并将所述第二反馈结果发送给所述客户端的步骤之后,包括:
筛选出没有返回与所述第一请求对应的反馈结果的指定服务器,并为所述指定服务器添加异常标记,其中所述指定服务器的数量为一个或多个;
向各所述指定服务器发送心跳信号;
若存在在所述第一预设时间内返回了心跳回复信息的第一指定服务器,则对所述第一指定服务器解除所述异常标记。
6.根据权利要求5所述的请求处理方法,其特征在于,所述向各所述指定服务器发送心跳信号的步骤之后,包括:
若存在在所述第一预设时间内没有返回心跳回复信息的第二指定服务器,则按照预设的时间间隔向所述第二指定服务器发送心跳信息;
记录所述第二指定服务器没有返回心跳回复信息的次数;
判断所述次数是否大于预设的次数阈值;
若是,向维修人员发出维修信息,以便所述维修人员对所述第二指定服务器进行维修处理。
7.根据权利要求6所述的请求处理方法,其特征在于,所述若在所述第二超时时间内接收到所述第二反馈结果,停止遍历,并将所述第二反馈结果发送给所述客户端的步骤之后,包括:
判断是否接收到新的第二请求;
若是,根据各所述服务器的标记状态,从所有所述服务器中筛选出没有添加所述异常标记的第三指定服务器;
根据所述优先级排序,从所述第三指定服务器中确定出优先级最高的第二服务器;
将所述第二请求发送至所述第二服务器,以便所述第二服务器对所述第二请求进行处理。
8.一种请求处理装置,其特征在于,包括:
接收模块,用于接收客户端发出的第一请求;
备份模块,用于对所述第一请求对应的报文进行备份得到副本;
第一发送模块,用于获取服务器集群中各服务器的优先级排序,将所述第一请求发送至优先级最高的第一服务器,以便所述第一服务器对所述第一请求进行处理,其中所述优先级排序为按照各所述服务器的优先级数值从小到大的顺序进行排序得到;
第一判断模块,用于判断在预设的第一超时时间内是否接收到所述第一服务器返回的与所述第一请求对应的第一反馈结果;
遍历模块,用于若在所述第一超时时间内没有接收到所述第一反馈结果,根据所述优先级排序,依次遍历除所述第一服务器外的其它服务器,每遍历到一个服务器时,在将所述副本发送至当前遍历到的服务器后,判断是否在预设的第二超时时间内接收到所述当前遍历到的服务器返回的与所述副本对应的第二反馈结果;
第二发送模块,用于若在所述第二超时时间内接收到所述第二反馈结果,停止遍历,并将所述第二反馈结果发送给所述客户端;
其中,超时时间是预先根据各服务器的优先级排序进行设置的,不同优先级的服务器对应不同的超时时间。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910301116.1A CN110138837B (zh) | 2019-04-15 | 2019-04-15 | 请求处理方法、装置、计算机设备和存储介质 |
PCT/CN2019/119567 WO2020211378A1 (zh) | 2019-04-15 | 2019-11-20 | 请求处理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910301116.1A CN110138837B (zh) | 2019-04-15 | 2019-04-15 | 请求处理方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110138837A CN110138837A (zh) | 2019-08-16 |
CN110138837B true CN110138837B (zh) | 2021-12-28 |
Family
ID=67570062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910301116.1A Active CN110138837B (zh) | 2019-04-15 | 2019-04-15 | 请求处理方法、装置、计算机设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110138837B (zh) |
WO (1) | WO2020211378A1 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110138837B (zh) * | 2019-04-15 | 2021-12-28 | 平安科技(深圳)有限公司 | 请求处理方法、装置、计算机设备和存储介质 |
KR20210022836A (ko) * | 2019-08-21 | 2021-03-04 | 현대자동차주식회사 | 클라이언트 전자 장치, 차량 및 그 제어 방법 |
CN110781452B (zh) * | 2019-09-18 | 2023-11-24 | 平安科技(深圳)有限公司 | 统计任务的处理方法、装置、计算机设备和存储介质 |
CN110737548B (zh) * | 2019-10-28 | 2022-06-10 | 聚好看科技股份有限公司 | 数据请求方法和服务器 |
CN111045805A (zh) * | 2019-12-11 | 2020-04-21 | 深圳前海环融联易信息科技服务有限公司 | 任务执行器的评级方法、装置、计算机设备以及存储介质 |
CN111541555A (zh) * | 2020-03-24 | 2020-08-14 | 中国平安人寿保险股份有限公司 | 群聊优化方法及相关产品 |
CN111506403B (zh) * | 2020-04-03 | 2024-07-23 | 北京声智科技有限公司 | 一种多服务处理方法及装置 |
CN111488203B (zh) * | 2020-04-13 | 2023-02-28 | 深圳市友杰智新科技有限公司 | 录音识别任务的处理方法、装置、计算机设备和存储介质 |
CN111556142B (zh) * | 2020-04-26 | 2023-04-18 | 天津中新智冠信息技术有限公司 | 服务调用方法、装置及*** |
CN111741539B (zh) * | 2020-08-28 | 2020-12-08 | 深圳传音控股股份有限公司 | 设备连接方法、设备、***及可读存储介质 |
CN112235393B (zh) * | 2020-10-13 | 2023-01-24 | 上海燕汐软件信息科技有限公司 | 一种基于物流***的服务稳定方法和装置 |
CN112270418A (zh) * | 2020-10-30 | 2021-01-26 | 云账户技术(天津)有限公司 | 一种银行渠道维护的处理方法 |
CN112988824B (zh) * | 2021-03-15 | 2023-09-26 | 平安科技(深圳)有限公司 | 数据生成方法、装置、计算机设备和存储介质 |
CN112861091A (zh) * | 2021-03-18 | 2021-05-28 | 网易(杭州)网络有限公司 | 登录方法、装置、电子设备和存储介质 |
CN113114505B (zh) * | 2021-04-13 | 2022-07-12 | 广州海鹚网络科技有限公司 | 基于httpClient的访问请求处理方法及*** |
CN113191146B (zh) * | 2021-05-26 | 2023-02-07 | 深圳赛安特技术服务有限公司 | 诉求数据的分配方法、装置、计算机设备和存储介质 |
CN113626693A (zh) * | 2021-07-30 | 2021-11-09 | 未鲲(上海)科技服务有限公司 | 产品推荐方法、装置、计算机设备和存储介质 |
CN113660510A (zh) * | 2021-08-19 | 2021-11-16 | 杭州时趣信息技术有限公司 | 一种视频处理云厂商配置方法、装置、*** |
CN113743628A (zh) * | 2021-09-18 | 2021-12-03 | 重庆允成互联网科技有限公司 | 维修响应及时率计算方法、装置、计算机设备及存储介质 |
CN114095560A (zh) * | 2022-01-20 | 2022-02-25 | 浙江口碑网络技术有限公司 | 一种服务对象切换方法及设备 |
CN115051910B (zh) * | 2022-05-19 | 2024-06-18 | 北京声智科技有限公司 | 请求处理方法、装置、电子设备及存储介质 |
CN115334011A (zh) * | 2022-08-09 | 2022-11-11 | 成都精灵云科技有限公司 | 一种服务质量控制方法、装置、服务器及存储介质 |
CN115660607B (zh) * | 2022-12-12 | 2023-04-28 | 平安银行股份有限公司 | 一种审批链自动生成方法、装置以及计算机存储介质 |
CN116880770A (zh) * | 2023-07-27 | 2023-10-13 | 山东溯源安全科技有限公司 | 一种u盘读取控制方法、电子设备及存储介质 |
CN117639936B (zh) * | 2023-12-12 | 2024-05-24 | 广西电网有限责任公司贵港供电局 | 一种基于ip光纤通信的传输方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102404390A (zh) * | 2011-11-07 | 2012-04-04 | 广东电网公司电力科学研究院 | 高速实时数据库的智能化动态负载均衡方法 |
CN107391268A (zh) * | 2016-05-17 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 服务请求处理方法及装置 |
CN109032800A (zh) * | 2018-07-26 | 2018-12-18 | 郑州云海信息技术有限公司 | 一种负载均衡调度方法、负载均衡器、服务器及*** |
CN109104500A (zh) * | 2018-09-29 | 2018-12-28 | 广东省信息工程有限公司 | 一种动态调整的服务器负载均衡方法及装置 |
CN109584105A (zh) * | 2018-11-12 | 2019-04-05 | 平安科技(深圳)有限公司 | 一种服务响应的方法及*** |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2599363B1 (en) * | 2010-07-26 | 2018-02-07 | Seven Networks, LLC | Context aware traffic management for resource conservation in a wireless network |
CN108429800B (zh) * | 2010-11-22 | 2020-04-24 | 杭州硕文软件有限公司 | 一种移动设备 |
CN106657426A (zh) * | 2015-11-04 | 2017-05-10 | 中兴通讯股份有限公司 | 域名解析请求的处理方法、装置及服务器 |
CN107888634B (zh) * | 2016-09-29 | 2021-05-28 | 北京金山云网络技术有限公司 | 一种分布式存储***的数据请求方法及装置 |
CN106412079B (zh) * | 2016-10-20 | 2019-04-16 | 福建天泉教育科技有限公司 | 请求处理方法及*** |
CN110138837B (zh) * | 2019-04-15 | 2021-12-28 | 平安科技(深圳)有限公司 | 请求处理方法、装置、计算机设备和存储介质 |
CN110333937B (zh) * | 2019-05-30 | 2023-08-29 | 平安科技(深圳)有限公司 | 任务分发方法、装置、计算机设备和存储介质 |
-
2019
- 2019-04-15 CN CN201910301116.1A patent/CN110138837B/zh active Active
- 2019-11-20 WO PCT/CN2019/119567 patent/WO2020211378A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102404390A (zh) * | 2011-11-07 | 2012-04-04 | 广东电网公司电力科学研究院 | 高速实时数据库的智能化动态负载均衡方法 |
CN107391268A (zh) * | 2016-05-17 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 服务请求处理方法及装置 |
CN109032800A (zh) * | 2018-07-26 | 2018-12-18 | 郑州云海信息技术有限公司 | 一种负载均衡调度方法、负载均衡器、服务器及*** |
CN109104500A (zh) * | 2018-09-29 | 2018-12-28 | 广东省信息工程有限公司 | 一种动态调整的服务器负载均衡方法及装置 |
CN109584105A (zh) * | 2018-11-12 | 2019-04-05 | 平安科技(深圳)有限公司 | 一种服务响应的方法及*** |
Also Published As
Publication number | Publication date |
---|---|
WO2020211378A1 (zh) | 2020-10-22 |
CN110138837A (zh) | 2019-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110138837B (zh) | 请求处理方法、装置、计算机设备和存储介质 | |
CN110333937B (zh) | 任务分发方法、装置、计算机设备和存储介质 | |
CN109412870B (zh) | 告警监控方法及平台、服务器、存储介质 | |
CN108205541B (zh) | 分布式网络爬虫任务的调度方法及装置 | |
CN110659123B (zh) | 一种基于消息的分布式任务分发调度方法及装置 | |
CN109634730B (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
WO2022105138A1 (zh) | 去中心化的任务调度方法、装置、设备及介质 | |
CN109766198B (zh) | 流式处理方法、装置、设备及计算机可读存储介质 | |
CN110312245A (zh) | 一种跨国漫游终端的业务监控方法及装置 | |
CN113704018A (zh) | 应用运维数据处理方法、装置、计算机设备及存储介质 | |
CN114461439A (zh) | 一种故障诊断方法、装置、设备及存储介质 | |
CN111782456A (zh) | 异常检测方法、装置、计算机设备和存储介质 | |
CN113518367B (zh) | 5g网络切片下基于服务特征的故障诊断方法及*** | |
CN111064802A (zh) | 一种网络请求的处理方法、装置、电子设备及存储介质 | |
CN110119314A (zh) | 一种服务器调用方法、装置、服务器及存储介质 | |
CN113918341A (zh) | 设备调度方法、装置、设备及存储介质 | |
CN108964992B (zh) | 一种节点故障检测方法、装置和计算机可读存储介质 | |
CN116643906A (zh) | 云平台故障的处理方法、装置、电子设备及存储介质 | |
CN113778803A (zh) | 任务资源监控***、方法及存储介质 | |
CN113824590A (zh) | 微服务网络的问题预测方法、计算机设备和存储介质 | |
CN114490003A (zh) | 大规模数据的分布式作业调度方法及相关设备 | |
CN110955647A (zh) | 数据库辅助方法、装置、计算机设备和存储介质 | |
CN112540771A (zh) | 自动化运维方法、***、设备和计算机可读存储介质 | |
CN112115119B (zh) | 一种图数据库的服务性能监测方法、装置以及存储介质 | |
CN111190788B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |