CN114125066A - 一种处理业务请求的方法和装置 - Google Patents
一种处理业务请求的方法和装置 Download PDFInfo
- Publication number
- CN114125066A CN114125066A CN202110055688.3A CN202110055688A CN114125066A CN 114125066 A CN114125066 A CN 114125066A CN 202110055688 A CN202110055688 A CN 202110055688A CN 114125066 A CN114125066 A CN 114125066A
- Authority
- CN
- China
- Prior art keywords
- service
- service request
- load
- request
- service unit
- 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
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000012545 processing Methods 0.000 title claims abstract description 49
- 238000004148 unit process Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000013480 data collection Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 abstract description 13
- 238000012360 testing method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000010998 test method Methods 0.000 description 3
- 101100379633 Xenopus laevis arg2-a gene Proteins 0.000 description 2
- 101150088826 arg1 gene Proteins 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种处理业务请求的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:在处理业务请求时,计算业务单元本地的负载数值,根据负载数值判断服务器是否存在负载过高的情况,当负载过高时,获取关联业务单元的负载数值并选取可以处理该业务请求的目标业务单元,将接收的业务请求发送到目标业务单元;从而提高了业务单元对业务请求的响应速度,克服了由于业务单元负载过高而造成的响应过慢或响应超时的问题,降低了服务器由于负载过高带来的系统不稳定和宕机风险。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种处理业务请求的方法和装置。
背景技术
在互联网应用系统中,服务器往往需要处理大量的业务请求,在实际应用中,服务器性能存在差异,业务请求的数量存在无规律性,服务器通常在某个时间段接收数量大幅度上升的业务请求并需要处理这些业务请求。
现有技术中对大量业务请求的处理方法是将业务请求加入队列中等待处理,但是当服务器负载过高、等待处理的业务请求数量过多时,存在服务器对业务请求的响应缓慢的问题,或者由于在队列中等待的时间过长时,导致业务请求因为超时而得不到返回数据;另外服务器也可能由于负载过高带来了系统不稳定和宕机的风险。
发明内容
有鉴于此,本发明实施例提供一种处理业务请求的方法和装置,能够在处理业务请求时,计算业务单元的负载数值,根据负载数值判断是否存在负载过高的情况,当负载过高时,获取关联业务单元的负载数值并选取目标业务单元,并将业务请求发送到目标业务单元进行处理;从而提高了对业务请求的响应速度,克服了由于业务单元负载过高而造成的对业务请求响应过慢或响应超时的问题,降低了业务单元由于负载过高带来的系统不稳定和宕机风险。
为实现上述目的,根据本发明实施例的一个方面,提供了一种处理业务请求的方法,其特征在于,包括:接收业务请求,获取本地业务单元的负载信息,基于所述负载信息计算本地的负载数值;当所述负载数值小于设定阈值时,所述本地业务单元处理所述业务请求,并发送对应于所述业务请求的返回结果;当所述负载数值不小于所述设定阈值时,获取所述本地业务单元对应的一个或多个关联业务单元的所述负载数值,根据所述负载数值确定目标业务单元;基于所述业务请求,生成更新业务请求,发送所述更新业务请求到所述目标业务单元。
可选地,所述处理业务请求的方法,其特征在于,
所述负载信息至少包含所述本地业务单元的资源数据、待处理的业务请求数据。
可选地,所述处理业务请求的方法,其特征在于,
在接收业务请求时,包括:接收所述业务请求,解析所述业务请求的报文,以获得所述业务请求相关的字段和对应的字段值。
可选地,所述处理业务请求的方法,其特征在于,
获得所述业务请求相关的字段和字段值,包括:所述字段至少包含请求类型、请求目标地址。
可选地,所述处理业务请求的方法,其特征在于,
基于字节码增强模型,根据所述请求类型、所述请求类型对应的接口配置文本,分别生成对应的业务代码,所述业务代码根据所述负载数值,判断是否由所述本地业务单元处理所述业务请求。
可选地,所述处理业务请求的方法,其特征在于,
获取所述本地业务单元对应的一个或多个关联业务单元的所述负载数值,包括:从负载数据集合获取对应的所述关联业务单元的所述负载数值,所述负载数据集合由所述本地业务单元、所述关联业务单元按照设定策略上报的所述负载数值、对应的地址信息而组成。
可选地,所述处理业务请求的方法,其特征在于,
基于所述业务请求,生成更新业务请求,包括:从所述负载数据集合中获取所述目标业务单元对应的地址信息;根据所述目标业务单元对应的地址信息,变更所述业务请求的所述请求目标地址字段对应的字段值;基于所述业务请求的字段和对应的字段值,生成所述更新业务请求。
为实现上述目的,根据本发明实施例的第二方面,提供了一种处理业务请求的装置,其特征在于,包括:计算负载模块、确定目标单元模块和处理业务请求模块;其中,
所述计算负载模块,用于接收业务请求,获取本地业务单元的负载信息,基于所述负载信息计算本地的负载数值;当所述负载数值不大于设定阈值时,所述本地业务单元处理所述业务请求,并发送对应于所述业务请求的返回结果;
所述确定目标单元模块,用于当所述负载数值大于所述设定阈值时,获取所述本地业务单元对应的一个或多个关联业务单元的所述负载数值,根据所述负载数值确定目标业务单元;
所述处理业务请求模块,用于基于所述业务请求,生成更新业务请求,发送所述更新业务请求到所述目标业务单元。
可选地,处理业务请求的装置,还包括负载数据采集模块;其中,
所述负载数据采集模块,用于采集所述本地业务单元、所述关联业务单元上报对应的所述负载数值以及对应的地址信息,形成负载数据集合。
为实现上述目的,根据本发明实施例的第三方面,提供了一种处理业务请求的电子设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述处理业务请求的方法中任一所述的方法。
为实现上述目的,根据本发明实施例的第四方面,提供了一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如上述处理业务请求的方法中任一所述的方法。
上述发明中的一个实施例具有如下优点或有益效果:能够在处理业务请求时,计算业务单元的负载数值,根据负载数值判断是否存在负载过高的情况,当负载过高时,获取关联业务单元的负载数值并选取目标业务单元,并将业务请求发送到目标业务单元进行处理;从而提高了对业务请求的响应速度,克服了由于业务单元负载过高而造成的对业务请求响应过慢或响应超时的问题,降低了业务单元由于负载过高带来的系统不稳定和宕机风险。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是本发明一实施例提供的一种处理业务请求的方法的流程示意图;
图2是本发明一实施例提供的一种获取业务请求的方法的示例图;
图3是本发明一个实施例提供的一种处理业务请求的装置的结构示意图;
图4是本发明实施例可以应用于其中的示例性系统架构图;
图5是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。
因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
如图1所示,本发明实施例提供了一种处理业务请求的方法,该方法可以包括以下步骤:
步骤S101:在接收业务请求时,获取本地业务单元的负载信息,基于所述负载信息计算本地的负载数值;当所述负载数值小于设定阈值时,所述本地业务单元处理所述业务请求,并发送对应于所述业务请求的返回结果。
具体地,接收业务请求,所述业务请求的请求类型可以是HTTP请求,webservice请求,dubbo请求等;进一步地,接收所述业务请求,解析所述业务请求的报文,以获得所述业务请求相关的字段和字段值;例如:接收的业务请求为HTTP POST请求,其示例报文如下所示:
POST/test HTTP/1.1
Content-Type:text/javascript;charset=UTF-8
Host:10.246.1.169:27783
paramA=you¶mB=6
进一步地,解析该报文得到如下所示的字段和对应的字段值的示例:
“requestType”:“http”,
“requestTargetAddress”:“http://10.200.1.199:27783/test”
“requestHeader”:
“{"method":"POST","Content-Type":"text/javascript;charset=UTF-8"}”,
“requestBody”:“{"paramA":"you","paramB":6}”
其中,示例中“requestType”(为请求类型字段)对应字段值为“HTTP”;“requestTargetAddress”(为请求目标地址字段)对应的字段值为“http://10.246.1.169:27783/test”,即,获得所述业务请求相关的字段和对应的字段值,包括:所述字段至少包含请求类型、请求目标地址;进一步地,根据业务请求的头部信息和消息体信息,解析得到的字段还可以包含请求的头部信息字段(“requestHeader”),对应的字段值为:"method":"POST","Content-Type":"text/javascript;charset=UTF-8";消息体信息字段(“requestBody”)以及对应的字段值("paramA":"you","paramB":6);优选地,将各个解析得到的字段和字段值以JSON格式存储,以利于利用统一接口处理接收的不同格式的请求,根据处理JSON格式的请求并确定请求类型后分别使用对应的方法做进一步处理;类似地,业务请求类型为dubbo请求的报文解析得到如下所示的字段和字段值的示例:
“requestType”:“dubbo”,
“requestTargetAddress”:“dubbo://10.200.1.166:27783/com.test.rpc.service.RpcService/testMethod”
“requestHeader”:“{}”,
“requestBody”:“{\"arg0\":{\"paramA\":\"you\",\"paramB\":1},\"arg1\":1}”
关于dubbo字段和字段值的描述与HTTP请求的描述类似,在此不再赘述。
进一步地,获取本地业务单元的负载信息,基于所述负载信息计算本地的负载数值;具体地,所述负载信息至少包含所述本地业务单元的资源数据、待处理的业务请求数据。其中,本地的资源数据包括本地业务单元的CPU使用率、内存使用率、磁盘输入输出使用率,上述资源数据可以通过系统指令(例如:Linux命令top和iostat)获取;待处理的业务请求数据可以为待处理的排队业务请求占比;获取本地业务单元的负载信息的方法可以为可拔插的插件技术和守护线程的方式(例如:java–javaagent:admittance.jar;)。
进一步地,计算排队业务请求占比(即为待处理的业务请求数据)的方法如下:
第一种方法:当业务请求为HTTP请求时,本地业务单元以Tomcat服务器为例,首先,从Tomcat配置中获取到Tomcat服务器参数;得到maxThreads(为Tomcat起动的最大线程数,即同时处理的任务个数,默认值为200);acceptCount(当tomcat起动的线程数达到最大时,接受排队的请求个数,默认值为100);然后,获取接收的业务请求数量,获取的方法为利用Tcpdump对请求接收装置所使用的端口(例如:端口号为80)进行数据采集,并统计接收的业务请求数量和发出的业务请求数量,图2中的201示出了通过Tcpdump获得的数据中,提取到的服务器接收客户端的业务请求的一个示例;如201中所示的内容,利用Push指令将数据为从客户端的IP地址(172.20.19.135)和端口80发送到服务器的IP地址(172.20.19.105)和端口58384,即服务器接收客户端的业务请求(即数据传输方向为从客户端到服务器);反方向则为服务器发送数据给客户端,如202中所示的内容;进一步地对示例201或202同类别的数据进行统计,得到服务器的接收请求数量和发送请求数量,进一步地,利用公式(1)计算待处理的业务请求数据,以下“占比”指示为待处理的业务请求数据:
占比=(接收请求数量-发送请求数量-maxThreads)/acceptCount(1);
如果公式(1)的分子是负数,则指示无待处理请求;可以理解的是,通过占比的数值指示待处理的业务请求数据的情况,以结合本地的资源数据来计算本地是否存在负载过高的情况。
第二种方法:当业务请求为dubbo请求时,首先,从dubbo配置信息中获取线程池参数:corePoolSize(为初始化的线程池数量);maxPoolSize(为最大的线程池数量);然后,利用公式(2)计算待处理的业务请求数据,以下“占比”指示为待处理的业务请求数据:
占比=(接收请求数量-发送请求数量-corePoolSize)/maxPoolSize(2);
如果公式(2)的分子是负数,则指示无等待请求。
进一步地,基于负载信息(本地资源数据、待处理的业务请求数据)计算负载数值;其中:计算负载数值的方法可以如公式(3)所示:
负载数值=(w1*CPU占用率+w2*内存使用率+w3*磁盘输入输出使用率+w4*占比)/n(3)
其中,w1、w2、w3、w4为权重值;权重值可以为0到1之间的数值,根据业务场景而设定;n为用于计算负载数值的变量,例如n=4;假设设定阈值为80%,利用公式(3)计算得到本地服务器的负载数值为60%,则认为本地服务器(即本地业务单元)不存在负载过高的情况,则处理接收的业务请求,即,当所述负载数值小于设定阈值时,所述本地业务单元处理所述业务请求,并发送对应于所述业务请求的返回结果。
进一步地,添加业务代码以判断是由本地业务单元处理业务请求,或者由目标业务单元处理该业务请求,具体地,基于字节码增强模型,根据所述请求类型、所述请求类型对应的接口配置文本,分别生成对应的业务代码,所述业务代码根据所述负载数值,判断是否由所述本地业务单元处理所述业务请求。,并根据判断结果执行对应的操作。具体地,字节码增强模型使用字节码增强技术(例如:ASM、Javassist),根据请求类型和接口配置文本,对接收业务请求的每个请求处理接口进行字节码的增强;例如:dubbo、Webservice、http协议类型以及配置文本分别为:dubbo接口包含注解@Service或对应的xml文件;WebService接口包含@WebService注解;http接口包含@Controller注解,通过字节码增强模型(例如:ASM、Javassist)生成业务请求是否可以处理的逻辑业务代码。以dubbo为例:假设dubbo接收业务请求的服务为com.test.dubbo.service.TestService、使用的方法为testMethod,对服务进行字节码增强以后,获取如下示例的业务代码,本发明对业务代码的具体内容和格式不做限定。
Boolean isAdmittance=getResultFromAdmittance()//根据负载数值,判断是否由所述本地业务单元处理所述业务请求,例如:通过根据负载数值计算得到的结果isAdmittance判断是否由所述本地业务单元处理所述业务请求;
if(isAdmittance){
//若是,则由本地业务单元处理业务请求
}else{//否则执行发送更新业务请求的操作
DoRedirect(request)}
步骤S102:当所述负载数值不小于所述设定阈值时,获取所述本地业务单元对应的一个或多个关联业务单元的所述负载数值,根据所述负载数值确定处理所述业务请求的目标业务单元。
具体地,当所述负载数值不小于所述设定阈值时,即经过计算得到的负载数值为90%,设定阈值为80%,则所述负载数值不小于所述设定阈值;计算负载数值的方法与步骤S101的描述一致,在此不再赘述。
进一步地,当所述负载数值不小于所述设定阈值时,指示本地服务器的负载过高,则获取所述本地业务单元对应的一个或多个关联业务单元的所述负载数值;可以理解的是,在分布式系统中,有多个业务单元包含相同的数据以处理分布式的业务;多个业务单元中一个业务单元为本地业务单元时,其他的业务单元为本地业务单元的关联业务单元。又,获取所述本地业务单元对应的一个或多个关联业务单元的所述负载数值,包括:从负载数据集合获取对应的所述关联业务单元的所述负载数值,所述负载数据集合由所述本地业务单元、所述关联业务单元按照设定策略上报的所述负载数值、对应的地址信息而组成;其中,设定策略可以是按照设定时间间隔(或者服务器中的特定服务启动时触发)。
进一步地,同一系统中处理业务请求的各个业务单元(包括本地业务单元以及一个或多个关联业务单元)上报获取到的负载信息,或者上报基于负载信息计算所得的负载数值;可以使用特定数据采集模块采集上报的负载数据并存储,形成负载数据集合;数据模块可以归属于系统内的任一服务器中,各个业务单元可以通过访问负载数据集合,获取各个关联业务单元的负载数据,同时获取各个关联业务单元的地址信息(IP地址和端口号)。
进一步地,根据所述负载数值确定目标业务单元;其中,目标业务单元为由于本地业务单元负载过高而选取的关联业务单元以处理本地业务单元接收的业务请求;确定目标业务单元的方法为根据负载数据集合中的各个关联业务单元的负载数值的数据,进行排序,选取负载数值最小(即指示为空闲或者可以正常处理业务请求)对应的关联业务单元作为目标业务单元;或者在负载数值较小的业务单元中,结合负载均衡等因素确定目标业务单元;本发明对根据负载数据集合确定目标业务单元的具体策略不做限定。
步骤S103:基于所述业务请求,生成更新业务请求,发送所述更新业务请求到所述目标业务单元。
具体地,在如步骤S103所描述的确定目标业务单元之后,发送更新业务请求到目标业务单元,其中,更新业务请求为基于业务请求而生成的。
以HTTP业务请求为例,假设目标业务单元的地址信息为(地址信息包含IP地址和端口号,例如IP地址为10.100.1.100,端口号为20080),则根据所述目标业务单元对应的地址信息,变更所述业务请求的所述请求目标地址字段对应的字段值,变更该字段值有以下两种方法:
第一种方法:请求目标地址的字段值从“http://10.200.1.199:27783/test”变更为“http://10.100.1.100:20080/test”;其中,“http://10.200.1.199:27783/test”为本地业务单元的请求目标地址;“10.100.1.100:20080”为目标业务单元对应的地址信息;即,根据所述目标业务单元对应的地址信息,变更所述业务请求的所述请求目标地址字段对应的字段值。
第二种方法:将请求目标地址的字段值从“http://10.200.1.199:27783/test”变更为“/test”;获取目标业务单元对应的地址信息(例如:“10.100.1.100:20080”);将请求目标地址“/test”和目标业务单元对应的地址信息(例如:“10.100.1.100:20080”)组合,生成更新业务请求中的请求目标地址。即,基于所述业务请求,生成更新业务请求
进一步地,基于所述业务请求的字段和对应的字段值,生成所述更新业务请求,基于HTTP请求类型的更新业务请求的字段和对应的字段值的示例如下所示:
“redirctType”:“http”,
“redirctTargetService”:“http://10.100.1.100:20080/test”
“redirctTargetRequestHeader”:
“{"method":"POST","Content-Type":"text/javascript;charset=UTF-8"}”,
“redirctTargetRequestBody”:“{"paramA":"you","paramB":6}”
其中,“redirctTargetService”指示为“请求目标地址”字段;其他字段(请求类型、头部信息、消息体信息与业务请求的字段类似;本发明对业务请求和更新业务请求的字段的具体内容不做限定;可以理解的是,更新业务请求的文本除了请求目标地址的字段值,均与业务请求的文本一致;优选地,本地业务请求和更新业务请求以JSON的格式存储,当接收更新业务请求时,根据请求的协议类型选择不同的接口方法处理该更新业务请求,并发送请求对应的发返回结果;
类似地,基于dubbo请求类型的更新业务请求的示例如下所示,
“redirctType”:“dubbo”,
“redirctTargetService”:
“dubbo://10.100.1.100:20080/com.test.rpc.service.RpcService/testMethod”
“redirctTargetRequestHeader”:“{}”,
“redirctTargetRequestBody”:
“{\"arg0\":{\"paramA\":\"you\",\"paramB\":1},\"arg1\":1}”
关于dubbo请求的字段和字段值的具体描述与HTTP业务请求示例类似,在此不再赘述。
如图3所示,本发明实施例提供了一种处理业务请求的装置300,包括:计算负载模块301、确定目标单元模块302和处理业务请求模块303;其中,
所述计算负载模块301,用于在接收业务请求时,获取本地业务单元的负载信息,基于所述负载信息计算本地的负载数值;当所述负载数值不大于设定阈值时,所述本地业务单元处理所述业务请求,并发送对应于所述业务请求的返回结果;
所述确定目标单元模块302,用于当所述负载数值大于所述设定阈值时,获取所述本地业务单元对应的一个或多个关联业务单元的所述负载数值,根据所述负载数值确定目标业务单元;
所述处理业务请求模块303,用于基于所述业务请求,生成更新业务请求,发送所述更新业务请求到所述目标业务单元。
可选地,处理业务请求的装置300,还包括负载数据采集模块;其中,
所述负载数据采集模块,用于采集所述本地业务单元、所述关联业务单元上报对应的所述负载数值以及对应的地址信息,形成负载数据集合。
本发明实施例还提供了一种处理业务请求的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一实施例提供的方法。
本发明实施例还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例提供的方法。
图4示出了可以应用本发明实施例的处理业务请求的方法或处理业务请求的装置的示例性系统架构400。
如图4所示,系统架构400可以包括终端设备401、402、403,网络404和服务器405。网络404用以在终端设备401、402、403和服务器405之间提供通信链路的介质。网络404可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备401、402、403通过网络404与服务器405交互,以接收或发送消息等。终端设备401、402、403上可以安装有各种客户端应用,例如电子商城客户端应用、网页浏览器应用、搜索类应用等。
终端设备401、402、403可以是具有显示屏并且支持各种客户端应用的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器405可以是提供各种服务的服务器,例如对用户利用终端设备401、402、403所使用的客户端应用提供支持的后台管理服务器。后台管理服务器可以对接收到的业务请求进行处理,并将对应于业务请求的返回数据反馈给终端设备。
需要说明的是,本发明实施例所提供的处理业务请求的方法一般由服务器405执行,相应地,处理业务请求的装置一般设置于服务器405中。
应该理解,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图5,其示出了适于用来实现本发明实施例的终端设备的计算机系统500的结构示意图。图5示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块和/或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块和/或单元也可以设置在处理器中,例如,可以描述为:一种处理器包括计算负载模块、确定目标单元模块和处理业务请求模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,计算负载模块模块还可以被描述为“根据获取的资源数据和待处理的业务请求数据,计算本地业务单元负载数值的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:接收业务请求,获取本地业务单元的负载信息,基于所述负载信息计算本地的负载数值;当所述负载数值小于设定阈值时,所述本地业务单元处理所述业务请求,并发送对应于所述业务请求的返回结果;当所述负载数值不小于所述设定阈值时,获取所述本地业务单元对应的一个或多个关联业务单元的所述负载数值,根据所述负载数值确定目标业务单元;基于所述业务请求,生成更新业务请求,发送所述更新业务请求到所述目标业务单元。
能够在处理业务请求时,计算业务单元的负载数值,根据负载数值判断是否存在负载过高的情况,当负载过高时,获取关联业务单元的负载数值并选取目标业务单元,并将业务请求发送到目标业务单元进行处理;从而提高了对业务请求的响应速度,克服了由于业务单元负载过高而造成的对业务请求响应过慢或响应超时的问题,降低了业务单元由于负载过高带来的系统不稳定和宕机风险。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (11)
1.一种处理业务请求的方法,其特征在于,包括
接收业务请求,获取本地业务单元的负载信息,基于所述负载信息计算本地的负载数值;当所述负载数值小于设定阈值时,所述本地业务单元处理所述业务请求,并发送对应于所述业务请求的返回结果;
当所述负载数值不小于所述设定阈值时,获取所述本地业务单元对应的一个或多个关联业务单元的所述负载数值,根据所述负载数值确定目标业务单元;
基于所述业务请求,生成更新业务请求,发送所述更新业务请求到所述目标业务单元。
2.根据权利要求1所述的方法,其特征在于,
所述负载信息至少包含所述本地业务单元的资源数据、待处理的业务请求数据。
3.根据权利要求1所述的方法,其特征在于,
在接收业务请求时,包括:
接收所述业务请求,解析所述业务请求的报文,以获得所述业务请求相关的字段和对应的字段值。
4.根据权利要求3所述的方法,其特征在于,
获得所述业务请求相关的字段和字段值,包括:
所述字段至少包含请求类型、请求目标地址。
5.根据权利要求4所述的方法,其特征在于,
基于字节码增强模型,根据所述请求类型、所述请求类型对应的接口配置文本,分别生成对应的业务代码,所述业务代码根据所述负载数值,判断是否由所述本地业务单元处理所述业务请求。
6.根据权利要求1所述的方法,其特征在于,
获取所述本地业务单元对应的一个或多个关联业务单元的所述负载数值,包括:
从负载数据集合获取对应的所述关联业务单元的所述负载数值,所述负载数据集合由所述本地业务单元、所述关联业务单元按照设定策略上报的所述负载数值、对应的地址信息而组成。
7.根据权利要求1-6任一所述的方法,其特征在于,
基于所述业务请求,生成更新业务请求,包括:
从所述负载数据集合中获取所述目标业务单元对应的地址信息;
根据所述目标业务单元对应的地址信息,变更所述业务请求的所述请求目标地址字段对应的字段值;
基于所述业务请求的字段和对应的字段值,生成所述更新业务请求。
8.一种处理业务请求的装置,其特征在于,包括:计算负载模块、确定目标单元模块和处理业务请求模块;其中,
所述计算负载模块,用于接收业务请求,获取本地业务单元的负载信息,基于所述负载信息计算本地的负载数值;当所述负载数值不大于设定阈值时,所述本地业务单元处理所述业务请求,并发送对应于所述业务请求的返回结果;
所述确定目标单元模块,用于当所述负载数值大于所述设定阈值时,获取所述本地业务单元对应的一个或多个关联业务单元的所述负载数值,根据所述负载数值确定目标业务单元;
所述处理业务请求模块,用于基于所述业务请求,生成更新业务请求,发送所述更新业务请求到所述目标业务单元。
9.根据权利要求8所述的装置,其特征在于,还包括负载数据采集模块;其中,
所述负载数据采集模块,用于采集所述本地业务单元、所述关联业务单元上报对应的所述负载数值以及对应的地址信息,形成负载数据集合。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
11.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110055688.3A CN114125066B (zh) | 2021-01-15 | 2021-01-15 | 一种处理业务请求的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110055688.3A CN114125066B (zh) | 2021-01-15 | 2021-01-15 | 一种处理业务请求的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114125066A true CN114125066A (zh) | 2022-03-01 |
CN114125066B CN114125066B (zh) | 2024-08-16 |
Family
ID=80359281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110055688.3A Active CN114125066B (zh) | 2021-01-15 | 2021-01-15 | 一种处理业务请求的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114125066B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115118569A (zh) * | 2022-06-29 | 2022-09-27 | 迈普通信技术股份有限公司 | 请求处理方法、装置、网管设备及可读存储介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090241176A1 (en) * | 2008-03-21 | 2009-09-24 | Microsoft Corporation | Load balancing in server computer systems |
US20120005352A1 (en) * | 2010-06-30 | 2012-01-05 | Fujitsu Limited | Information processing apparatus, program, and method |
CN103259739A (zh) * | 2012-02-15 | 2013-08-21 | 株式会社日立制作所 | 负载均衡设备以及负载均衡方法 |
CN106161511A (zh) * | 2015-03-31 | 2016-11-23 | 华为技术有限公司 | 业务请求处理方法、相关装置及系统 |
CN106657379A (zh) * | 2017-01-06 | 2017-05-10 | 重庆邮电大学 | 一种nginx服务器负载均衡的实现方法及系统 |
CN107707661A (zh) * | 2017-10-16 | 2018-02-16 | 中国银联股份有限公司 | 一种负载均衡资源管理方法和装置 |
CN109491797A (zh) * | 2018-11-26 | 2019-03-19 | 深圳市斯博科技有限公司 | 数据存储方法、系统及计算机可读存储介质 |
CN110764908A (zh) * | 2019-10-12 | 2020-02-07 | 腾讯云计算(北京)有限责任公司 | 一种负载调节方法、装置、服务器及存储介质 |
CN110858843A (zh) * | 2018-08-22 | 2020-03-03 | 重庆小雨点小额贷款有限公司 | 业务请求处理方法、装置及计算机可读存储介质 |
CN110933122A (zh) * | 2018-09-20 | 2020-03-27 | 北京默契破冰科技有限公司 | 管理服务器的方法、设备和计算机存储介质 |
CN111010453A (zh) * | 2019-12-29 | 2020-04-14 | 中建材信息技术股份有限公司 | 服务请求处理方法、系统、电子设备及计算机可读介质 |
CN111176843A (zh) * | 2019-12-23 | 2020-05-19 | 中国平安财产保险股份有限公司 | 基于多维度的负载均衡方法、装置及相关设备 |
CN111931030A (zh) * | 2020-07-30 | 2020-11-13 | 中粮招商局(深圳)粮食电子交易中心有限公司 | 基于异构系统的请求适配方法、装置、设备及存储介质 |
-
2021
- 2021-01-15 CN CN202110055688.3A patent/CN114125066B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090241176A1 (en) * | 2008-03-21 | 2009-09-24 | Microsoft Corporation | Load balancing in server computer systems |
US20120005352A1 (en) * | 2010-06-30 | 2012-01-05 | Fujitsu Limited | Information processing apparatus, program, and method |
CN103259739A (zh) * | 2012-02-15 | 2013-08-21 | 株式会社日立制作所 | 负载均衡设备以及负载均衡方法 |
CN106161511A (zh) * | 2015-03-31 | 2016-11-23 | 华为技术有限公司 | 业务请求处理方法、相关装置及系统 |
CN106657379A (zh) * | 2017-01-06 | 2017-05-10 | 重庆邮电大学 | 一种nginx服务器负载均衡的实现方法及系统 |
CN107707661A (zh) * | 2017-10-16 | 2018-02-16 | 中国银联股份有限公司 | 一种负载均衡资源管理方法和装置 |
CN110858843A (zh) * | 2018-08-22 | 2020-03-03 | 重庆小雨点小额贷款有限公司 | 业务请求处理方法、装置及计算机可读存储介质 |
CN110933122A (zh) * | 2018-09-20 | 2020-03-27 | 北京默契破冰科技有限公司 | 管理服务器的方法、设备和计算机存储介质 |
CN109491797A (zh) * | 2018-11-26 | 2019-03-19 | 深圳市斯博科技有限公司 | 数据存储方法、系统及计算机可读存储介质 |
CN110764908A (zh) * | 2019-10-12 | 2020-02-07 | 腾讯云计算(北京)有限责任公司 | 一种负载调节方法、装置、服务器及存储介质 |
CN111176843A (zh) * | 2019-12-23 | 2020-05-19 | 中国平安财产保险股份有限公司 | 基于多维度的负载均衡方法、装置及相关设备 |
CN111010453A (zh) * | 2019-12-29 | 2020-04-14 | 中建材信息技术股份有限公司 | 服务请求处理方法、系统、电子设备及计算机可读介质 |
CN111931030A (zh) * | 2020-07-30 | 2020-11-13 | 中粮招商局(深圳)粮食电子交易中心有限公司 | 基于异构系统的请求适配方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
杨明极;王鹤;赵加凤;: "基于CPU和内存利用率的负载均衡算法的研究", 科技通报, no. 04, 30 April 2016 (2016-04-30) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115118569A (zh) * | 2022-06-29 | 2022-09-27 | 迈普通信技术股份有限公司 | 请求处理方法、装置、网管设备及可读存储介质 |
CN115118569B (zh) * | 2022-06-29 | 2024-03-15 | 迈普通信技术股份有限公司 | 请求处理方法、装置、网管设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114125066B (zh) | 2024-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110445632B (zh) | 一种预防客户端崩溃的方法和装置 | |
CN112379982B (zh) | 任务处理方法、装置、电子设备及计算机可读存储介质 | |
CN113076153B (zh) | 一种接口调用方法和装置 | |
CN109271259B (zh) | 企业服务总线系统、数据处理方法、终端及存储介质 | |
CN114979024A (zh) | 算力网络交易方法、装置、计算机可读介质及电子设备 | |
CN109428926B (zh) | 一种调度任务节点的方法和装置 | |
CN112667368B (zh) | 一种任务数据处理方法和装置 | |
CN111831503B (zh) | 一种基于监控代理的监控方法和监控代理装置 | |
CN111427899A (zh) | 存储文件的方法、装置、设备和计算机可读介质 | |
CN108764866B (zh) | 用于分配资源、领取资源的方法和设备 | |
CN114125066B (zh) | 一种处理业务请求的方法和装置 | |
CN112084042A (zh) | 一种消息处理的方法和装置 | |
CN114035895A (zh) | 一种基于虚拟服务计算能力的全局负载均衡方法和装置 | |
CN115525400A (zh) | 基于批次来管理多个计算任务的方法、设备和程序产品 | |
CN112685481B (zh) | 一种数据处理方法和装置 | |
CN113127561B (zh) | 业务单号的生成方法、装置、电子设备和存储介质 | |
CN112559179A (zh) | 一种作业处理方法和装置 | |
CN112561301A (zh) | 工单分配方法、装置、设备和计算机可读介质 | |
CN113760482B (zh) | 一种任务处理方法、装置和系统 | |
CN110858240A (zh) | 一种前端模块加载方法和装置 | |
CN113283991B (zh) | 一种区块链上交易数据的处理方法及装置 | |
CN114924937A (zh) | 批量任务处理方法、装置、电子设备及计算机可读介质 | |
CN113064620A (zh) | 一种处理系统数据的方法和装置 | |
CN112306791B (zh) | 一种性能监控的方法和装置 | |
CN112860447B (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 |