CN109933426B - 服务调用的处理方法、装置、电子设备及可读存储介质 - Google Patents
服务调用的处理方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN109933426B CN109933426B CN201910121767.2A CN201910121767A CN109933426B CN 109933426 B CN109933426 B CN 109933426B CN 201910121767 A CN201910121767 A CN 201910121767A CN 109933426 B CN109933426 B CN 109933426B
- Authority
- CN
- China
- Prior art keywords
- service
- request
- level
- determining
- calling
- 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
Landscapes
- Telephonic Communication Services (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种服务调用的处理方法、装置、电子设备及可读存储介质,所述方法包括:获取服务调用请求集,并确定每个服务调用请求的调用方和被调用方的服务等级;根据所述调用方和被调用方的服务等级,确定所述服务调用请求对应的请求队列,所述请求队列为多个第一请求队列或多个第二请求队列,所述第一请求队列采用内核线程执行所述服务调用请求,所述第二请求队列采用非内核线程执行服务调用请求;根据所述被调用方提供服务的节点总数目将所述服务调用请求添加至所述请求队列中。可以通过内核线程和非内核线程分别处理不同服务等级的调用方、被调用方的服务请求,有助于提高服务请求的处理速度,避免排队堵塞。
Description
技术领域
本发明实施例涉及网络领域,尤其涉及一种服务调用的处理方法、装置、电子设备及可读存储介质。
背景技术
面向服务的系统是一种组件模型,包括:服务提供者、服务消费者、注册中心,而在系统初始化或服务提供者信息发生变化时,服务消费者需要从注册中心中获取服务提供者信息。
现有技术中,采用总控队列进行获取请求的决策和仲裁。主要步骤包括:在服务消费者和服务提供者之间增加总控队列,暂时存储消息及其相关信息,使服务消费者和服务提供者解耦;设计JMS消息的相关属性信息;根据消息到达时间和系统当前时间对消息的优先级进行调整,并在调整后的优先级高于线程优先级的情况下,将消息发送至服务提供者。
然而,在线程资源紧张的情况下,上述方案仍存在线程资源分配不均衡,导致排队堵塞。
发明内容
本发明提供一种服务调用的处理方法、装置、电子设备及可读存储介质,以解决现有技术服务调用时存在的上述问题。
根据本发明的第一方面,提供了一种服务调用的处理方法,所述方法包括:
获取服务调用请求集,并确定每个服务调用请求的调用方和被调用方的服务等级;
根据所述调用方和被调用方的服务等级,确定所述服务调用请求对应的请求队列,所述请求队列为多个第一请求队列或多个第二请求队列,所述第一请求队列采用内核线程执行所述服务调用请求,所述第二请求队列采用非内核线程执行服务调用请求;
根据所述被调用方提供服务的节点总数目将所述服务调用请求添加至所述请求队列中。
根据本发明的第二方面,提供了一种服务调用的处理装置,所述装置包括:
服务器等级确定模块,用于获取服务调用请求集,并确定每个服务调用请求的调用方和被调用方的服务等级;
请求队列确定模块,用于根据所述调用方和被调用方的服务等级,确定所述服务调用请求对应的请求队列,所述请求队列为多个第一请求队列或多个第二请求队列,所述第一请求队列采用内核线程执行所述服务调用请求,所述第二请求队列采用非内核线程执行服务调用请求;
请求队列添加模块,用于根据所述被调用方提供服务的节点总数目将所述服务调用请求添加至所述请求队列中。
根据本发明的第三方面,提供了一种电子设备,包括:
处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现前述服务调用的处理方法。
根据本发明的第四方面,提供了一种可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述服务调用的处理方法。
本发明实施例提供了一种服务调用的处理方法、装置、电子设备及可读存储介质,所述方法包括:获取服务调用请求集,并确定每个服务调用请求的调用方和被调用方的服务等级;根据所述调用方和被调用方的服务等级,确定所述服务调用请求对应的请求队列,所述请求队列为多个第一请求队列或多个第二请求队列,所述第一请求队列采用内核线程执行所述服务调用请求,所述第二请求队列采用非内核线程执行服务调用请求;根据所述被调用方提供服务的节点总数目将所述服务调用请求添加至所述请求队列中。可以通过内核线程和非内核线程分别处理不同服务等级的调用方、被调用方的服务请求,有助于提高服务请求的处理速度,避免排队堵塞。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的系统架构下的一种服务调用的处理方法具体步骤流程图;
图2(A、B、C)分别是三种服务调用请求的示意图;
图3是本发明实施例提供的一种服务调用的处理流程图;
图4是本发明实施例提供的系统架构下的另一种服务调用的处理方法具体步骤流程图;
图5是本发明实施例提供的一种服务调用请求拆分的示意图;
图6是本发明实施例提供的一种服务调用的处理装置的结构图;
图7是本发明实施例提供的另一种服务调用的处理装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
参照图1,其示出了一种服务调用的处理方法的步骤流程图,包括:
步骤101,获取服务调用请求集,并确定每个服务调用请求的调用方和被调用方的服务等级。
其中,调用方和被调用方是相对的两个服务方,每个服务方通过一个或多个节点提供服务,服务内容根据业务场景不同而不同。可以理解,服务方A在服务调用请求B中可以作为调用方,但在服务调用请求C中可以作为被调用方。如图2(A)所示,一个服务调用请求包含调用方和被调用方,如图2(B)所示,服务调用请求1和服务调用请求2的被调用方相同,调用方分别为调用方1和调用方2;如图2(C)所示,服务调用请求1和2的调用方相同,被调用方分别为被调用方1和被调用方2。
服务等级用于确定服务方提供的服务重要程度和紧急程度。服务重要程度越高,紧急程度越高,则服务等级越高,服务方具有优先处理的优先权;服务重要程度越低,紧急程度越低,则服务等级越低,服务方不具有优先处理的优先权。
在实际应用中,服务调用请求入口用于获取服务调用请求,如图4所示,周期性触发、变更触发、服务触发的三种服务调用请求均输入至服务调用请求入口,该入口将服务调用请求发送至决策模块,确定服务调用请求中调用方、被调用方的服务等级,并根据服务等级确定对应的请求队列、
步骤102,根据所述调用方和被调用方的服务等级,确定所述服务调用请求对应的请求队列,所述请求队列为多个第一请求队列或多个第二请求队列,所述第一请求队列采用内核线程执行所述服务调用请求,所述第二请求队列采用非内核线程执行服务调用请求。
其中,内核线程相对于非内核线程响应速度较快,处理效率较高。
具体地,当调用方或被调用方的服务等级较高时,将服务调用请求添加至第一请求队列,从而采用内核线程处理该请求,可以保证该类请求的高效处理;当调用方和被调用方的服务等级均较低时,将服务调用请求添加至第二请求队列,从而采用非内核线程处理该请求。
此外,当同一个服务方同时作为至少两个服务调用请求的调用方或被调用方时,需要根据服务等级决策处理顺序。例如,如图2(B)所示,若调用方1的服务等级高于调用方2的服务等级,则优先处理服务调用请求1,然后处理服务调用请求2;若调用方1的服务等级低于调用方2的服务等级,则优先处理服务调用请求2,然后处理服务调用请求1;若调用方1和2的服务等级相同,则轮询处理服务调用请求1和2。同理,如图2(C)所示。若被调用方1的服务等级高于被调用方2的服务等级,则优先处理服务调用请求1,然后处理服务调用请求2;若被调用方1的服务等级低于被调用方2的服务等级,则优先处理服务调用请求2,然后处理服务调用请求1;若被调用方1和2的服务等级相同,则轮询处理服务调用请求1和2。
步骤103,根据所述被调用方提供服务的节点总数目将所述服务调用请求添加至所述请求队列中。
可以理解,由于第一请求队列和第二请求队列存在多个,从而在确定了请求队列之后,还需要确定具体添加至哪个请求队列。例如,若一个服务调用请求对应的请求队列为第一请求队列,而第一请求队列包括4个,则需要确定将服务调用请求添加至这4个请求队列中的哪一个。
如图3所示,在确定了服务调用请求对应第一请求队列或第二请求队列之后,需要进行请求拆分。为了尽量降低请求的响应时间,可以根据被调用方提供服务的节点总数目将服务调用请求拆分为多个子请求,并均匀添加至如图3中m个第一请求队列或n个第二请求队列中,尽量使得每个队列中子请求访问的节点数目相当,以并行处理各子请求。从而一个请求的响应时间可以根据响应队列数目降低一定倍数,可以有效降低请求的响应时间。
综上所述,本发明实施例提供了一种服务调用的处理方法,所述方法包括:获取服务调用请求集,并确定每个服务调用请求的调用方和被调用方的服务等级;根据所述调用方和被调用方的服务等级,确定所述服务调用请求对应的请求队列,所述请求队列为多个第一请求队列或多个第二请求队列,所述第一请求队列采用内核线程执行所述服务调用请求,所述第二请求队列采用非内核线程执行服务调用请求;根据所述被调用方提供服务的节点总数目将所述服务调用请求添加至所述请求队列中。可以通过内核线程和非内核线程分别处理不同服务等级的调用方、被调用方的服务请求,有助于提高服务请求的处理速度,避免排队堵塞。
实施例二
本申请实施例从系统架构的层级对可选地服务调用的处理方法进行了描述。
参照图4,其示出了另一种服务调用的处理方法的具体步骤流程图。
步骤201,获取服务调用请求集,并确定每个服务调用请求的调用方和被调用方的服务等级。
该步骤可以参照步骤101的详细说明,在此不再赘述。
可选地,在本发明的另一种实施例中,上述步骤201包括子步骤2011至2018:
子步骤2011,针对每个服务调用请求,获取所述服务调用请求的请求类型。
其中,请求类型分为周期性触发、服务触发、变更触发三种。
周期性触发为服务调用请求按照预设时间间隔重复进行,例如,服务调用请求可以每天、每小时触发一次。
服务触发为前台发送的服务请求,例如,用户发起查询某信息。
变更触发为后台服务器在服务方的状态或其他信息等变化之后发起。
子步骤2012,在所述请求类型为周期性触发的情况下,确定所述调用方、被调用方的服务等级为第一服务等级。
在本发明实施例中,对于周期性触发的服务调用请求,通常重要性和紧急程度都比较低,从而服务等级较低,为第一服务等级。
可以理解,第一服务等级为最低服务等级,本发明实施例将服务等级从低到高依次划分为第一服务等级、第二服务等级、第三服务等级、第四服务等级、第五服务等级。
当然,在实际应用中,服务等级的划分可以根据实际应用场景灵活确定,本发明实施例对其不加以限制。
子步骤2013,在所述请求类型为服务触发的情况下,确定所述调用方、被调用方的服务等级为第四服务等级。
在本发明实施例中,对于服务触发的服务调用请求,重要性和紧急程度较高,从而服务等级较高,为第四等级。
可以理解,第四服务等级高于第一服务等级。
子步骤2014,在所述请求类型为变更触发的情况下,针对所述调用方、被调用方中的每个服务方,统计所述服务方提供服务的节点数目,以及,获取所述服务方对应的重要等级。
在本发明实施例中,对于变更触发的服务调用请求,需要进一步根据服务方的节点数目以及预先配置的重要等级确定服务等级。
在实际应用中,提供一种服务的服务方通常存在多个节点提供服务,每个节点为一个服务器。
对于每个服务方,可以预先配置其重要等级。重要等级可以从配置信息中获取。
子步骤2015,在所述重要等级为预设低重要等级的情况下,确定所述服务方的服务等级为第二服务等级,所述第二服务等级高于所述第一服务等级。
其中,低重要等级可以根据实际应用场景设定,本发明实施例对其不加以限制。例如,重要等级包括第一重要等级、第二重要等级、第三重要等级,则低重要等级可以包括第一重要等级。当然,在特殊场景下,低重要等级还可以包括多个,例如可以将第一重要等级、第二重要等级均作为低重要等级。
在本发明实施例中,变更触发的服务等级高于周期性触发的服务等级,变更触发请求中,按照服务方的重要等级进一步划分服务等级。
子步骤2016,在所述节点数目小于或等于预设节点数阈值,且所述重要等级不存在的情况下,确定所述服务方的服务等级为第三服务等级,所述第三服务等级高于所述第二服务等级。
其中,节点数阈值可以根据实际应用场景设定,本发明实施例对其不加以限制。
在实际应用中,当一个服务方未配置重要等级或配置的重要等级无效时,重要等级不存在。
在本发明实施例中,对于变更触发,节点数目小于或等于预设节点数阈值,且重要等级不存在的服务方,其服务等级高于重要等级为预设低重要等级的服务方。
子步骤2017,在所述节点数目大于预设节点数阈值,且所述重要等级不存在的情况下,确定所述服务方的服务等级为第四等级,所述第四服务等级高于所述第三服务等级。
在本发明实施例中,对于变更触发,节点数目大于预设节点数阈值,且重要等级不存在的服务方,其服务等级高于节点数目小于或等于预设节点数阈值,且重要等级不存在的服务方。
子步骤2018,在所述节点数目大于预设节点数阈值,且所述重要等级存在的情况下,确定所述服务方的服务等级为第五服务等级,所述第五服务等级高于所述第四服务等级。
在本发明实施例中,对于变更触发,节点数目大于预设节点数阈值,且重要等级存在的服务方,其服务等级最高。
步骤202,确定所述调用方和被调用方的服务等级是否高于预设服务等级。
其中,预设服务等级可以根据实际应用场景设定。例如,可以将第一服务等级作为预设服务等级。
步骤203,在所述调用方和被调用方的服务等级均高于预设服务等级的情况下,确定所述服务调用请求对应第一请求队列,所述第一请求队列采用内核线程执行所述服务调用请求。
在本发明实施例中,服务等级高于预设服务等级的服务方,作为高服务等级的服务方;服务等级低于预设服务等级的服务方,作为低服务等级的服务方。从而对于调用方和被调用方均为高服务等级的服务调用请求,采用内核线程处理,以保证该类请求的响应速度。
步骤204,在所述调用方和被调用方其中至少一方的服务等级低于或等于预设服务等级的情况下,确定所述服务调用请求对应第二请求队列,所述第二请求队列采用非内核线程执行服务调用请求。
在本发明实施例中,对于调用方或被调用方为低服务等级的服务调用请求,采用非内核线程处理,降低内核线程的压力,也可以满足该类请求的响应速度,最终可以降低队列堵塞的概率。
步骤205,获取所述请求队列的队列数目,以及,被调用方提供服务的节点总数目。
其中,队列数目可以根据线程数目确定。第一请求队列的数目可以根据内核线程数目确定,例如与内核线程数目相同,或接近;第二请求队列的数目可以根据非内核线程数目确定,例如与非内核线程数目相同或接近。
节点总数目可以参照步骤103中的详细说明,在此不再赘述。
步骤206,根据所述队列数目和节点总数目确定每个请求队列对应的节点数目。
具体地,可以计算节点总数目与队列数目的比值,得到每个请求队列对应的节点数目,当得到的比值为小数时,可以四舍五入取整,使得拆分之后所有队列对应的节点数目之和最接近原节点总数目。如图5所示,提供服务的节点总数目为32,队列数目为4,则每个请求队列对应的节点数目为32/4=8。
步骤207,针对每个请求队列,按照所述请求队列对应的节点数目,将所述服务调用请求拆分为服务调用子请求,并添加至所述请求队列中。
具体地,将服务调用请求拆分为若干服务调用子请求,每个服务调用子请求对应的节点数目为单个请求队列对应的节点数目。例如,如图5所示,将服务调用请求拆分为4个服务调用子请求,服务调用子请求1对应服务节点1至8,添加至请求队列1中;服务调用子请求2对应服务节点9至16,添加至请求队列2中,子请求3对应服务节点17至24,添加至请求队列3中;子请求4对应服务节点25至32,添加至请求队列4中。
步骤208,接收针对所述服务调用子请求对应的结果数据。
其中,结果数据从注册中心中获取,注册中心用于存储被调用方的相关数据,服务调用子请求可以从注册中心中获取对应的结果数据。如图5所示,4个服务调用子请求分别从注册中心中获取到4个结果数据。
步骤209,将所述服务调用子请求对应的结果数据合并为所述服务调用请求的结果数据。
具体地,需要将服务调用子请求按照请求拆分规则合并。如图5所示,将4个服务调用子请求对应的结果数据合并为原服务调用请求的结果数据,即:将从节点1至8、9至16、17至24、25至32得到的四个结果数据,合并为节点1至32的一个结果数据。
综上所述,本发明实施例提供了一种服务调用的处理方法,所述方法包括:获取服务调用请求集,并确定每个服务调用请求的调用方和被调用方的服务等级;根据所述调用方和被调用方的服务等级,确定所述服务调用请求对应的请求队列,所述请求队列为多个第一请求队列或多个第二请求队列,所述第一请求队列采用内核线程执行所述服务调用请求,所述第二请求队列采用非内核线程执行服务调用请求;根据所述被调用方提供服务的节点总数目将所述服务调用请求添加至所述请求队列中。可以通过内核线程和非内核线程分别处理不同服务等级的调用方、被调用方的服务请求,有助于提高服务请求的处理速度,避免排队堵塞。
实施例三
参照图6,其示出了一种服务调用的处理装置的结构图,具体如下。
服务器等级确定模块301,用于获取服务调用请求集,并确定每个服务调用请求的调用方和被调用方的服务等级。
请求队列确定模块302,用于根据所述调用方和被调用方的服务等级,确定所述服务调用请求对应的请求队列,所述请求队列为多个第一请求队列或多个第二请求队列,所述第一请求队列采用内核线程执行所述服务调用请求,所述第二请求队列采用非内核线程执行服务调用请求。
请求队列添加模块303,用于根据所述被调用方提供服务的节点总数目将所述服务调用请求添加至所述请求队列中。
综上所述,本发明实施例提供了一种服务调用的处理装置,所述装置包括:服务器等级确定模块,用于获取服务调用请求集,并确定每个服务调用请求的调用方和被调用方的服务等级;请求队列确定模块,用于根据所述调用方和被调用方的服务等级,确定所述服务调用请求对应的请求队列,所述请求队列为多个第一请求队列或多个第二请求队列,所述第一请求队列采用内核线程执行所述服务调用请求,所述第二请求队列采用非内核线程执行服务调用请求;请求队列添加模块,用于根据所述被调用方提供服务的节点总数目将所述服务调用请求添加至所述请求队列中。可以通过内核线程和非内核线程分别处理不同服务等级的调用方、被调用方的服务请求,有助于提高服务请求的处理速度,避免排队堵塞。
实施例四
参照图7,其示出了另一种服务调用的处理装置的结构图,具体如下。
服务器等级确定模块401,用于获取服务调用请求集,并确定每个服务调用请求的调用方和被调用方的服务等级。
请求队列确定模块402,用于根据所述调用方和被调用方的服务等级,确定所述服务调用请求对应的请求队列,所述请求队列为多个第一请求队列或多个第二请求队列,所述第一请求队列采用内核线程执行所述服务调用请求,所述第二请求队列采用非内核线程执行服务调用请求;可选地,在本发明实施例中,上述请求队列确定模块402,包括:
服务等级判断子模块4021,用于确定所述调用方和被调用方的服务等级是否高于预设服务等级。
第一请求队列确定子模块4022,用于在所述调用方和被调用方的服务等级均高于预设服务等级的情况下,确定所述服务调用请求对应第一请求队列。
第二请求队列确定子模块4023,用于在所述调用方和被调用方其中至少一方的服务等级低于或等于预设服务等级的情况下,确定所述服务调用请求对应第二请求队列。
请求队列添加模块403,用于根据所述被调用方提供服务的节点总数目将所述服务调用请求添加至所述请求队列中;可选地,在本发明实施例中,上述请求队列添加模块403,包括:
第一数目获取子模块4031,用于获取所述请求队列的队列数目,以及,被调用方提供服务的节点总数目。
第二数目确定子模块4032,用于根据所述队列数目和节点总数目确定每个请求队列对应的节点数目。
请求队列添加子模块4033,用于针对每个请求队列,按照所述请求队列对应的节点数目,将所述服务调用请求拆分为服务调用子请求,并添加至所述请求队列中。
结果数据接收模块404,用于接收针对所述服务调用子请求对应的结果数据。
结果数据合并模块405,用于将所述服务调用子请求对应的结果数据合并为所述服务调用请求的结果数据。
可选地,在本发明的另一种实施例中,上述服务器等级确定模块401包括:
请求类型确定子模块,用于针对每个服务调用请求,获取所述服务调用请求的请求类型;
周期触发等级确定子模块,用于在所述请求类型为周期性触发的情况下,确定所述调用方、被调用方的服务等级为第一服务等级;
服务触发等级确定子模块,用于在所述请求类型为服务触发的情况下,确定所述调用方、被调用方的服务等级为第四服务等级;
相关信息获取子模块,用于在所述请求类型为变更触发的情况下,针对所述调用方、被调用方中的每个服务方,统计所述服务方提供服务的节点数目,以及,获取所述服务方对应的重要等级;
第一变更触发等级确定子模块,用于在所述重要等级为预设低重要等级的情况下,确定所述服务方的服务等级为第二服务等级,所述第二服务等级高于所述第一服务等级;
第二变更触发等级确定子模块,用于在所述节点数目小于或等于预设节点数阈值,且所述重要等级不存在的情况下,确定所述服务方的服务等级为第三服务等级,所述第三服务等级高于所述第二服务等级;
第三变更触发等级确定子模块,用于在所述节点数目大于预设节点数阈值,且所述重要等级不存在的情况下,确定所述服务方的服务等级为第四等级,所述第四服务等级高于所述第三服务等级;
第四变更触发等级确定子模块,用于在所述节点数目大于预设节点数阈值,且所述重要等级存在的情况下,确定所述服务方的服务等级为第五服务等级,所述第五服务等级高于所述第四服务等级。
综上所述,本发明实施例提供了一种服务调用的处理装置,所述装置包括:服务器等级确定模块,用于获取服务调用请求集,并确定每个服务调用请求的调用方和被调用方的服务等级;请求队列确定模块,用于根据所述调用方和被调用方的服务等级,确定所述服务调用请求对应的请求队列,所述请求队列为多个第一请求队列或多个第二请求队列,所述第一请求队列采用内核线程执行所述服务调用请求,所述第二请求队列采用非内核线程执行服务调用请求;请求队列添加模块,用于根据所述被调用方提供服务的节点总数目将所述服务调用请求添加至所述请求队列中。可以通过内核线程和非内核线程分别处理不同服务等级的调用方、被调用方的服务请求,有助于提高服务请求的处理速度,避免排队堵塞。
本发明实施例还提供了一种电子设备,包括:处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现前述实施例的服务调用的处理方法。
本发明实施例还提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述实施例的服务调用的处理方法。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的服务调用的处理设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (7)
1.一种服务调用的处理方法,其特征在于,所述方法包括:
获取服务调用请求集,并确定每个服务调用请求的调用方和被调用方的服务等级;
根据所述调用方和被调用方的服务等级,确定所述服务调用请求对应的请求队列,所述请求队列为多个第一请求队列或多个第二请求队列,所述第一请求队列采用内核线程执行所述服务调用请求,所述第二请求队列采用非内核线程执行服务调用请求;
根据所述被调用方提供服务的节点总数目将所述服务调用请求添加至所述请求队列中;
所述根据所述调用方和被调用方的服务等级,确定所述服务调用请求对应的请求队列的步骤,包括:
确定所述调用方和被调用方的服务等级是否高于预设服务等级;
在所述调用方和被调用方的服务等级均高于预设服务等级的情况下,确定所述服务调用请求对应第一请求队列;
在所述调用方和被调用方其中至少一方的服务等级低于或等于预设服务等级的情况下,确定所述服务调用请求对应第二请求队列。
2.根据权利要求1所述的方法,其特征在于,所述根据所述被调用方提供服务的节点总数目将所述服务调用请求添加至所述请求队列中的步骤,包括:
获取所述请求队列的队列数目,以及,被调用方提供服务的节点总数目;
根据所述队列数目和节点总数目确定每个请求队列对应的节点数目;
针对每个请求队列,按照所述请求队列对应的节点数目,将所述服务调用请求拆分为服务调用子请求,并添加至所述请求队列中。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
接收针对所述服务调用子请求对应的结果数据;
将所述服务调用子请求对应的结果数据合并为所述服务调用请求的结果数据。
4.根据权利要求1所述的方法,其特征在于,所述确定每个服务调用请求的调用方和被调用方的服务等级的步骤,包括:
针对每个服务调用请求,获取所述服务调用请求的请求类型;
在所述请求类型为周期性触发的情况下,确定所述调用方、被调用方的服务等级为第一服务等级;
在所述请求类型为服务触发的情况下,确定所述调用方、被调用方的服务等级为第四服务等级;
在所述请求类型为变更触发的情况下,针对所述调用方、被调用方中的每个服务方,统计所述服务方提供服务的节点数目,以及,获取所述服务方对应的重要等级;
在所述重要等级为预设低重要等级的情况下,确定所述服务方的服务等级为第二服务等级,所述第二服务等级高于所述第一服务等级;
在所述节点数目小于或等于预设节点数阈值,且所述重要等级不存在的情况下,确定所述服务方的服务等级为第三服务等级,所述第三服务等级高于所述第二服务等级;
在所述节点数目大于预设节点数阈值,且所述重要等级不存在的情况下,确定所述服务方的服务等级为第四等级,所述第四服务等级高于所述第三服务等级;
在所述节点数目大于预设节点数阈值,且所述重要等级存在的情况下,确定所述服务方的服务等级为第五服务等级,所述第五服务等级高于所述第四服务等级。
5.一种服务调用的处理装置,其特征在于,所述装置包括:
服务器等级确定模块,用于获取服务调用请求集,并确定每个服务调用请求的调用方和被调用方的服务等级;
请求队列确定模块,用于根据所述调用方和被调用方的服务等级,确定所述服务调用请求对应的请求队列,所述请求队列为多个第一请求队列或多个第二请求队列,所述第一请求队列采用内核线程执行所述服务调用请求,所述第二请求队列采用非内核线程执行服务调用请求;
请求队列添加模块,用于根据所述被调用方提供服务的节点总数目将所述服务调用请求添加至所述请求队列中;
所述请求队列确定模块,包括:
服务等级判断子模块,用于确定所述调用方和被调用方的服务等级是否高于预设服务等级;
第一请求队列确定子模块,用于在所述调用方和被调用方的服务等级均高于预设服务等级的情况下,确定所述服务调用请求对应第一请求队列;
第二请求队列确定子模块,用于在所述调用方和被调用方其中至少一方的服务等级低于或等于预设服务等级的情况下,确定所述服务调用请求对应第二请求队列。
6.一种电子设备,其特征在于,包括:
处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-4中一个或多个所述的服务调用的处理方法。
7.一种可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如方法权利要求1-4中一个或多个所述的服务调用的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910121767.2A CN109933426B (zh) | 2019-02-19 | 2019-02-19 | 服务调用的处理方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910121767.2A CN109933426B (zh) | 2019-02-19 | 2019-02-19 | 服务调用的处理方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109933426A CN109933426A (zh) | 2019-06-25 |
CN109933426B true CN109933426B (zh) | 2021-06-25 |
Family
ID=66985644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910121767.2A Active CN109933426B (zh) | 2019-02-19 | 2019-02-19 | 服务调用的处理方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109933426B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113225265B (zh) * | 2021-04-28 | 2022-10-28 | 北京百度网讯科技有限公司 | 流量控制方法、装置、设备和计算机存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103605498A (zh) * | 2013-12-05 | 2014-02-26 | 用友软件股份有限公司 | 单线程任务的多线程执行方法及系统 |
CN103605576A (zh) * | 2013-11-25 | 2014-02-26 | 华中科技大学 | 一种基于多线程的MapReduce执行系统 |
CN105159783A (zh) * | 2015-10-09 | 2015-12-16 | 上海瀚之友信息技术服务有限公司 | 一种系统任务分配方法 |
CN105893126A (zh) * | 2016-03-29 | 2016-08-24 | 华为技术有限公司 | 一种任务调度方法及装置 |
CN107832161A (zh) * | 2017-11-06 | 2018-03-23 | 东软集团股份有限公司 | 服务调用方法及装置、存储介质、电子设备 |
CN108196946A (zh) * | 2017-12-28 | 2018-06-22 | 北京翼辉信息技术有限公司 | 一种微内核操作系统的分区多核方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9811434B1 (en) * | 2015-12-16 | 2017-11-07 | Amazon Technologies, Inc. | Predictive management of on-demand code execution |
-
2019
- 2019-02-19 CN CN201910121767.2A patent/CN109933426B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103605576A (zh) * | 2013-11-25 | 2014-02-26 | 华中科技大学 | 一种基于多线程的MapReduce执行系统 |
CN103605498A (zh) * | 2013-12-05 | 2014-02-26 | 用友软件股份有限公司 | 单线程任务的多线程执行方法及系统 |
CN105159783A (zh) * | 2015-10-09 | 2015-12-16 | 上海瀚之友信息技术服务有限公司 | 一种系统任务分配方法 |
CN105893126A (zh) * | 2016-03-29 | 2016-08-24 | 华为技术有限公司 | 一种任务调度方法及装置 |
CN107832161A (zh) * | 2017-11-06 | 2018-03-23 | 东软集团股份有限公司 | 服务调用方法及装置、存储介质、电子设备 |
CN108196946A (zh) * | 2017-12-28 | 2018-06-22 | 北京翼辉信息技术有限公司 | 一种微内核操作系统的分区多核方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109933426A (zh) | 2019-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108306874B (zh) | 服务接口访问限流方法及装置 | |
CN109343972B (zh) | 任务处理方法及终端设备 | |
CN110933136A (zh) | 一种服务节点选择方法、装置、设备及可读存储介质 | |
CN111200606A (zh) | 深度学习模型任务处理方法、系统、服务器及存储介质 | |
CN111338803B (zh) | 一种线程处理方法和装置 | |
CN114116149A (zh) | 一种任务调度方法、装置、设备及介质 | |
CN104052677A (zh) | 单一数据源的软负载均衡方法和装置 | |
US11144359B1 (en) | Managing sandbox reuse in an on-demand code execution system | |
CN109933426B (zh) | 服务调用的处理方法、装置、电子设备及可读存储介质 | |
CN114153609A (zh) | 资源控制方法及装置、电子设备、计算机可读存储介质 | |
CN112559176B (zh) | 一种指令处理方法和装置 | |
CN111290842A (zh) | 一种任务执行方法和装置 | |
CN111597041B (zh) | 一种分布式系统的调用方法、装置、终端设备及服务器 | |
CN116192752B (zh) | 业务流量控制方法、装置、电子设备及存储介质 | |
CN110413427B (zh) | 订阅数据拉取方法、装置、设备及存储介质 | |
CN115061796A (zh) | 子任务之间调用的执行方法、系统及电子设备 | |
CN111858019B (zh) | 任务调度方法、装置及计算机可读存储介质 | |
CN116467053A (zh) | 资源调度方法及装置、设备、存储介质 | |
CN113760485A (zh) | 定时任务的调度方法、装置、设备及存储介质 | |
CN111427673A (zh) | 一种负载均衡方法、装置及设备 | |
JP6595419B2 (ja) | Api提供装置及びapiリクエスト制御方法 | |
CN114466079B (zh) | 请求处理方法、装置、代理服务器及存储介质 | |
CN114880120B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN110012053B (zh) | Soa系统架构下的系统调用方法、装置、设备及soa系统架构 | |
CN117640777A (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 |