CN105430028A - 服务调用方法、提供方法及节点 - Google Patents

服务调用方法、提供方法及节点 Download PDF

Info

Publication number
CN105430028A
CN105430028A CN201410452908.6A CN201410452908A CN105430028A CN 105430028 A CN105430028 A CN 105430028A CN 201410452908 A CN201410452908 A CN 201410452908A CN 105430028 A CN105430028 A CN 105430028A
Authority
CN
China
Prior art keywords
service
node
service providing
providing node
parameter
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
Application number
CN201410452908.6A
Other languages
English (en)
Other versions
CN105430028B (zh
Inventor
徐会卿
张翔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201410452908.6A priority Critical patent/CN105430028B/zh
Publication of CN105430028A publication Critical patent/CN105430028A/zh
Application granted granted Critical
Publication of CN105430028B publication Critical patent/CN105430028B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本申请提供一种服务调用方法、提供方法及节点。服务调用方法包括:服务调用节点获取可以向服务调用节点提供服务的至少一个服务提供节点的能力表征参数;能力表征参数用于表征服务提供节点根据服务提供节点的服务性能对服务提供节点的当前服务能力进行修正后可提供的服务能力;根据至少一个服务提供节点的能力表征参数,从至少一个服务提供节点中确定目标节点;将服务调用请求发送给目标节点,以调用目标节点提供的服务。本申请技术方案可以均衡分布式集群中各节点的处理压力,提高分布式集群的服务能力。

Description

服务调用方法、提供方法及节点
【技术领域】
本申请涉及通信技术领域,尤其涉及一种服务调用方法、提供方法及节点。
【背景技术】
在分布式集群中,节点之间通过异步协议进行调用,即需要服务的节点(可称为服务调用节点)将调用请求发送给提供服务的节点(可称为服务提供节点)后并不同步等待,只是保存上下文,之后就会执行其他操作。在服务提供节点根据调用请求处理完将处理结果反馈给服务调用节点后,服务调用节点再恢复上下文进行处理。这种分布式集群可以充分发挥每个节点的性能。
在实际应用中,一般会有多个服务提供节点提供相同的服务,当有服务调用节点需要该服务时,一般会调用某个服务提供节点,当有多个服务调用节点同时调用同一服务提供节点时,会导致该服务提供节点本地的消息队列溢出或者处理速度陡然下降,这种情况会严重降低服务提供节点的服务能力。
【发明内容】
本申请的多个方面提供一种服务调用方法、提供方法及节点,用以各服务提供节点的处理压力,提高服务提供节点的服务能力。
本申请的一方面,提供一种服务调用方法,包括:
服务调用节点获取可以向所述服务调用节点提供服务的至少一个服务提供节点的能力表征参数;所述能力表征参数用于表征所述服务提供节点根据所述服务提供节点的服务性能对所述服务提供节点的当前服务能力进行修正后可提供的服务能力;
所述服务调用节点根据所述至少一个服务提供节点的能力表征参数,从所述至少一个服务提供节点中确定目标节点;
所述服务调用节点将服务调用请求发送给所述目标节点,以调用所述目标节点提供的服务。
本申请的另一方面,提供一种服务提供方法,包括:
服务提供节点确定所述服务提供节点的能力表征参数,所述能力表征参数用于表征所述服务提供节点根据所述服务提供节点的服务性能对所述服务提供节点的当前服务能力进行修正后可提供的服务能力;
所述服务提供节点向服务调用节点提供所述能力表征参数,以使所述服务调用节点根据所述能力表征参数,从至少一个所述服务提供节点中确定目标节点并请求调用所述目标节点所提供的服务。
本申请的又一方面,提供一种服务调用节点,包括:
获取模块,用于获取所述多个节点不同于所述服务调用节点且可以向所述服务调用节点提供服务的至少一个服务提供节点的处理压力参数能力表征参数,所述处理压力参数能力表征参数用于表征所述服务提供节点根据所述服务提供节点的服务性能对所述服务提供节点的当前服务能力进行修正后可提供的服务能力反映所述服务提供节点在预留用于满足所述服务提供节点提供的服务对响应速度的要求的处理能力之后形成的处理压力;
确定模块,用于根据所述至少一个服务提供节点的处理压力参数能力表征参数,从所述至少一个服务提供节点中确定目标节点;
发送模块,用于将服务调用请求发送给所述目标节点,以调用所述目标节点提供的服务。
本申请的又一方面,提供一种服务提供节点,包括:
确定模块,用于确定所述服务提供节点的处理压力参数能力表征参数,所述能力表征参数用于表征所述服务提供节点根据所述服务提供节点的服务性能对所述服务提供节点的当前服务能力进行修正后可提供的服务能力所述处理压力参数用于反映所述服务提供节点在预留用于满足所述服务提供节点提供的服务对响应速度的要求的处理能力之后形成的处理压力;
提供模块,用于向所述服务调用节点提供所述处理压力参数能力表征参数,以使所述服务调用节点根据所述处理压力参数能力表征参数,从至少一个所述服务提供节点中确定目标节点并请求调用所述目标节点所提供的服务。
在本申请技术方案中,服务提供节点优先保证其服务性能,将可以表征根据其服务性能对实际服务能力进行修正后可提供的服务能力的能力表征参数提供给服务调用节点,服务调用节点根据服务提供节点提供的能力表征参数,从提供相同服务的至少一个服务提供节点中确定目标节点,进而将服务调用请求发送给目标节点,以调用目标节点提供的服务。本申请基于每个服务提供节点的能力表征参数进行服务调用,可以均衡服务提供节点之间的处理压力,同时还可以保证服务提供节点的服务性能。
【附图说明】
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请以下方法实施例所基于的一种分布式集群的结构示意图;
图2为本申请一实施例提供的服务调用方法的流程示意图;
图3为本申请一实施例提供的服务提供方法的流程示意图;
图4为本申请一实施例提供的实际处理压力随着队列消息数的上升而增长趋势示意图;
图5为本申请一实施例提供的处理压力参数随着队列消息数的上升而增长趋势示意图;
图6为本申请另一实施例提供的处理压力参数随着队列消息数的上升而增长趋势示意图;
图7为本申请一实施例提供的服务调用节点的结构示意图;
图8为本申请一实施例提供的服务提供节点的结构示意图。
【具体实施方式】
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先说明,本申请以下方法实施例适用于包括服务调用节点可以调用服务提供节点所提供的服务,而服务提供节点可以向服务调用节点提供服务的各种系统或场景,尤其适用于分布式集群,但并不限于分布式集群。
图1为本申请以下方法实施例所基于的一种分布式集群的结构示意图。如图1所示,该分布式集群包括多个节点10。其中,每个节点10用于向不同于该节点的其他节点提供服务,也可以调用不同于该节点的其他节点所提供的服务。多个不同的节点10可以提供同一服务。不同服务的性能不同。其中,当节点10向其他节点提供服务时可以作为服务提供节点,当节点10调用其他节点所提供的服务时可以作为服务调用节点。
图2为本申请一实施例提供的服务调用方法的流程示意图。该方法可以适用于但不限于图1所示分布式集群。如图2所示,该方法包括:
201、服务调用节点获取可以向服务调用节点提供服务的至少一个服务提供节点的能力表征参数,该能力表征参数用于表征服务提供节点根据服务提供节点的服务性能对服务提供节点的当前服务能力进行修正后可提供的服务能力。
202、服务调用节点根据至少一个服务提供节点的能力表征参数,从至少一个服务提供节点中确定目标节点。
203、服务调用节点将服务调用请求发送给目标节点,以调用目标节点提供的服务。
若本实施例提供的方法应用于分布式集群,则本实施例中的服务调用节点可以是分布式集群中任意一个节点,相应的,服务提供节点可以是分布式集群中不同于服务调用节点且可以向服务调用节点提供服务的任意一个节点。服务提供节点可以有一个或多个。
具体的,当服务调用节点需要调用某个服务时,首先获取可以提供该服务的至少一个服务提供节点的能力表征参数,根据该能力表征参数从至少一个服务提供节点中确定最终向服务调用节点提供服务的目标节点,再将服务调用请求发送给目标节点,以调用目标节点所提供的服务。
其中,服务提供节点的能力表征参数可以是服务提供节点的服务能力参数,该服务能力参数用于表征服务提供节点根据自身的服务性能对当前服务能力进行修正后可提供的服务能力;服务能力参数越大表示该服务提供节点可提供的服务能力越强。或者,服务提供节点的能力表征参数可以是服务提供节点的处理压力参数,该处理压力参数用于表征服务提供节点根据自身的服务性能对当前处理压力进行修正后的处理压力;处理压力参数越大表示该服务提供节点的处理压力越大,相应的可提供的服务能力就越弱。当前服务能力是指服务调用节点获取服务提供节点的服务能力参数时,该服务提供节点可提供的真实服务能力。当前处理压力是指服务调用节点获取服务提供节点的服务能力参数时,该服务提供节点当时的真实处理压力。
其中,处理压力参数可由服务提供节点根据其服务性能、当前队列消息数和预设的队列阈值获得。具体获取方式可参见下述服务提供方法实施例中的描述。基于此,当前处理压力可以是服务提供节点的当前队列消息数与预设的队列阈值的比值。
由于本实施例中的能力表征参数可以反映服务提供节点的服务能力,因此服务调用节点可以基于服务提供节点的服务能力确定最终向服务调用节点提供服务的目标节点,这样可以优先选择服务能力强的服务提供节点作为目标节点,不至于导致某个服务提供节点的处理压力过大,有利于均衡服务提供节点之间的处理压力;另外,由于本实施例中的能力表征参数反映了服务提供节点的服务性能,因此还可以保证服务提供节点的服务性能,保证服务提供节点所提供的服务质量。由此可见,本实施例提供的方法一方面可以均衡服务提供节点之间的处理压力,另一方面还可以保证服务提供节点所提供的服务质量,有利于提高整个系统的服务能力。
上述服务调用节点获取至少一个服务提供节点的能力表征参数的实施方式包括但不限于以下几种:
第一种方式:服务调用节点可以接收至少一个服务提供节点中每个服务提供节点主动发送的能力表征参数。例如,服务提供节点可以定时向服务调用节点发送其能力表征参数。另外,由于随着时间的推移,服务提供节点的能力表征参数会随着本地消息队列中的服务调用请求的数量发生变化,因此服务提供节点还可以在能力表征参数发生变化时向服务调用节点发送其能力表征参数。这种主动发送能力表征参数的方式可以减少分布式集群中的数据传输量,有利于节约资源。
第二种方式:服务调用节点可以向至少一个服务提供节点中每个服务提供节点发送请求,以请求获取每个服务提供节点的能力表征参数,服务提供节点根据服务调用节点发送的请求,向服务调用节点返回其能力表征参数。
如图1所示,可以在分布式集群中独立部署一台配置中心20,由配置中心20集中管理分布式集群中的能力表征参数。具体的,服务提供节点定时或者在其能力表征参数发生变化时,将能力表征参数提供给配置中心20。也就是说,配置中心20存储有每个服务提供节点的能力表征参数。
基于上述配置中心,第三种方式:服务调用节点可以定时向配置中心发送参数请求,以请求获取至少一个服务提供节点的能力表征参数;配置中心根据服务调用节点发送的参数请求,获取至少一个服务提供节点的能力表征参数并返回给服务调用节点;服务调用节点接收配置中心根据上述参数请求返回的至少一个服务提供节点的能力表征参数。
基于上述配置中心,第四种方式:服务调用节点接收配置中心在至少一个服务提供节点中每个服务提供节点的能力表征参数发生变化时主动发送的每个服务提供节点的能力表征参数。
在一可选实施方式中,能力表征参数为处理压力参数,该处理压力参数表征服务提供节点根据服务提供节点的服务性能对服务提供节点的当前处理压力进行修正后的处理压力。基于此,服务调用节点根据至少一个服务提供节点的能力表征参数,从至少一个服务提供节点中确定目标节点的方式包括但不限于以下方式:
服务调用节点根据至少一个服务提供节点的处理压力参数,确定是否存在处理压力参数小于预设参数门限的服务提供节点;
如果确定存在处理压力参数小于预设参数门限的服务提供节点,说明当前存在处理压力不太大的服务提供节点,于是服务调用节点可以从处理压力参数小于预设参数门限的服务提供节点中选择目标节点,优选的,服务调用节点可以从处理压力参数小于预设参数门限的服务提供节点中选择处理压力参数最小的服务提供节点作为目标节点;
如果确定不存在处理压力参数小于预设参数门限的服务提供节点,说明此时各服务提供节点的处理压力都较大,如果再向这些服务提供节点发送服务调用请求,有可能导致这些服务提供节点的消息队列溢出或处理速度陡然下降,因此服务调用节点将服务调用请求暂存在本地等待,直到出现处理压力参数小于预设参数门限的服务提供节点为止,从所出现的处理压力参数小于预设参数门限的服务提供节点中选择处理压力参数最小的服务提供节点作为目标节点。例如,若同时出现多个处理压力参数小于参数门限的服务提供节点,优选的,服务调用节点可以从中选择处理压力参数最小的服务提供节点作为目标节点。
进一步,在上述实施方式的基础上,若服务调用节点将服务调用请求暂存在本地,则随着时间的推移,服务调用节点本地暂存的服务调用请求就会很多,那么服务调用节点的处理压力也会增大,进而导致调用服务调用节点所提供的服务的节点的处理压力增大,通过层层的反馈,最终会将处理压力反馈到分布式集群的接入层的节点,这些接入层的节点大多是通过同步协议进行接入的,因此可以在其处理压力较大时可以对来自分布式集群外部触发产生服务调用请求的外部请求进行限流,例如直接将一部分外部请求丢掉,这样可以保证分布式集群的整体可用性。
基于上述分析,如果服务调用节点本身就是分布式集群的接入层节点,则当服务调用节点本地暂存的服务调用请求的数量超过预设暂存数量门限时,可以对来自分布式集群外部的触发产生服务调用请求的外部请求进行限流,例如可以直接丢掉部分外部请求。
图3为本申请一实施例提供的服务提供方法的流程示意图。该方法也适用于但不限于图1所示分布式集群。如图3所示,该方法包括:
301、服务提供节点确定服务提供节点的能力表征参数,该能力表征参数用于表征所述服务提供节点根据所述服务提供节点的服务性能对所述服务提供节点的当前服务能力进行修正后可提供的服务能力。
302、服务提供节点向服务调用节点提供上述能力表征参数,以使服务调用节点根据上述能力表征参数,从至少一个服务提供节点中确定目标节点并请求调用目标节点所提供的服务。
若本实施例提供的方法应用于分布式集群中,则服务调用节点可以是分布式集群中任意一个节点,相应的,服务提供节点可以是分布式集群中不同于服务调用节点且可以向服务调用节点提供服务的任意一个节点。服务提供节点可以有一个或多个。
具体的,服务提供节点在向服务调用节点提供服务之前,首先确定服务提供节点的能力表征参数,将能力表征参数提供给服务调用节点;服务调用节点根据该能力表征参数确定是否选择该服务提供节点作为最终向服务调用节点提供服务的目标节点。
其中,服务提供节点的能力表征参数可以是服务提供节点的服务能力参数,该服务能力参数用于表征服务提供节点根据自身的服务性能对当前服务能力进行修正后可提供的服务能力;服务能力参数越大表示该服务提供节点可提供的服务能力越强。或者,服务提供节点的能力表征参数可以是服务提供节点的处理压力参数,该处理压力参数用于表征服务提供节点根据自身的服务性能对当前处理压力进行修正后的处理压力;处理压力参数越大表示该服务提供节点的处理压力越大,相应的可提供的服务能力就越弱。
例如,服务提供节点根据服务提供节点的服务性能对服务提供节点的当前处理压力进行修正,以获得作为能力表征参数的处理压力参数。
其中,服务提供节点的服务性能包括但不限于:要求响应速度(可简称为响应速度优先),或者要求吞吐量(可简称为吞吐量优先),或者响应速度和吞吐量均衡。其中,响应速度优先是指针对服务提供节点发送的调用请求要求,服务提供节点在尽可能短的时间返回结果,所述尽可能短的时间是指不大于服务提供节点在当时处理压力下的正常处理时间的时间。吞吐量优先是指要求服务提供节点在单位时间内处理尽可能多的服务调用请求,所述尽可能多是指不少于服务提供节点在当时处理压力下所能正常处理的请求数的数量。
在一可选实施方式中,服务提供节点根据服务提供节点的服务性能对服务提供节点的当前处理压力进行修正,以获得作为能力表征参数的处理压力参数的方式包括但不限于以下几种:
首先说明,在以下几种方式中,队列阀值是服务提供节点预设的配置项,表示服务提供节点所能接受的最大消息堆积量。
第一种方式;服务提供节点将当前队列消息数与预设的队列阈值的比值作为服务提供节点的实际处理压力;如果服务提供节点的服务性能要求响应速度,则增大实际处理压力以作为处理压力参数;如果服务提供节点提供的服务性能要求吞吐量,则减小实际处理压力以获得处理压力参数。其中,随着队列消息数的上升,对应的实际处理压力的增长趋势如图4所示。
第二种方式:如果服务提供节点的服务性能要求响应速度,服务提供节点获取当前队列消息数的平方根与预设的队列阈值的平方根的比值作为服务提供节点的处理压力参数;其中,随着队列消息数的上升,对应的处理压力参数的增长趋势如图5所示。
如果服务提供节点的服务性能要求吞吐量,服务提供节点获取当前队列消息数的平方与预设的队列阈值的平方的比值作为服务提供节点的处理压力参数。其中,随着队列消息数的上升,对应的处理压力参数的增长趋势如图6所示。
在一可选实施方式中,服务提供节点向服务调用节点提供能力表征参数的方式包括但不限于以下几种:
第一种方式:服务提供节点主动将能力表征参数发送给服务调用节点。例如,服务提供节点可以定时向服务调用节点发送其能力表征参数。另外,由于随着时间的推移,服务提供节点的能力表征参数会随着本地消息队列中的服务调用请求的数量发生变化,因此服务提供节点还可以在能力表征参数发生变化时向服务调用节点发送其能力表征参数。这种主动发送能力表征参数的方式可以减少分布式集群中的数据传输量,有利于节约资源。
第二种方式:服务提供节点接收服务调用节点发送的请求,根据该请求将能力表征参数发送给服务调用节点。
如图1所示,可以在分布式集群中独立部署一台配置中心20,由配置中心20集中管理分布式集群中的能力表征参数。
第三种方式:服务提供节点定时或者在其能力表征参数发生变化时,将能力表征参数提供给配置中心20,以便于服务调用节点从配置中心20获取服务提供节点的能力表征参数。
由于本实施例中的能力表征参数可以反映服务提供节点所能提供的服务能力,因此服务调用节点基于服务提供节点的服务能力确定最终向服务调用节点提供服务的目标节点,这样可以优先选择服务能力强的服务提供节点作为目标节点,不至于导致某个服务提供节点的处理压力过大,有利于均衡服务提供节点之间的处理压力;另外,由于本实施例中的能力表征参数反映了服务提供节点的服务性能,因此可以保证服务提供节点的服务性能,保证服务提供节点所提供的服务质量。由此可见,本实施例提供的方法一方面可以均衡服务提供节点之间的处理压力,另一方面还可以保证服务提供节点所提供的服务质量,因此可以提高整个系统的服务能力。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
图7为本申请一实施例提供的服务调用节点的结构示意图。该服务调用节点可以位于分布式集群中,是分布式集群中多个节点中的一个节点,但并不限于此。如图7所示,该服务调用节点包括:获取模块71、确定模块72和发送模块73。
获取模块71,用于获取可以向该服务调用节点提供服务的至少一个服务提供节点的能力表征参数,所述能力表征参数用于表征服务提供节点根据服务提供节点的服务性能对服务提供节点的当前服务能力进行修正后可提供的服务能力。
其中,服务提供节点的能力表征参数可以是服务提供节点的服务能力参数,该服务能力参数用于表征服务提供节点根据自身的服务性能对当前服务能力进行修正后获得的后可提供的服务能力;服务能力参数越大表示该服务提供节点的可提供的服务能力越强。或者,服务提供节点的能力表征参数可以是服务提供节点的处理压力参数,该处理压力参数用于表征服务提供节点根据自身的服务性能对当前处理压力进行修正后的处理压力;处理压力参数越大表示该服务提供节点的处理压力越大,相应的可提供的服务能力就越弱。当前服务能力是指服务调用节点获取服务提供节点的服务能力参数时,该服务提供节点可提供的真实服务能力。或当前处理压力是指服务调用节点获取服务提供节点的服务能力参数时,该服务提供节点所能提供的经过修正后的服务能力或当时的真实处理压力。
确定模块72,与获取模块71连接,用于根据获取模块71获取的至少一个服务提供节点的能力表征参数,从至少一个服务提供节点中确定目标节点。
发送模块73,与确定模块72连接,用于将服务调用请求发送给确定模块72确定的目标节点,以调用目标节点提供的服务。
在一可选实施方式中,获取模块71具体可用于定时向配置中心发送参数请求,以请求获取至少一个服务提供节点的能力表征参数,接收配置中心根据参数请求返回的至少一个服务提供节点的能力表征参数。或者
获取模块71具体可用于接收配置中心在至少一个服务提供节点中每个服务提供节点的能力表征参数发生变化时主动发送的每个服务提供节点的能力表征参数。
其中,配置中心存储有每个服务提供节点的能力表征参数。
在一可选实施方式中,确定模块72具体可用于在能力表征参数为处理压力参数时,根据至少一个服务提供节点的处理压力参数,确定是否存在处理压力参数小于预设参数门限的服务提供节点,在确定存在处理压力参数小于所述参数门限的服务提供节点时,从处理压力参数小于所述参数门限的服务提供节点中选择处理压力参数最小的服务提供节点作为目标节点,或者在确定不存在处理压力参数小于参数门限的服务提供节点时,将服务调用请求暂存在本地等待,直到出现处理压力参数小于参数门限的服务提供节点为止,从所出现的处理压力参数小于参数门限的服务提供节点中选择处理压力参数最小的服务提供节点作为目标节点。
其中,上述处理压力参数表征服务提供节点根据服务提供节点的服务性能对服务提供节点的当前处理压力进行修正后的处理压力。
在一可选实施方式中,本实施例的服务调用节点可以是分布式集群的接入层节点,基于此,该服务调用节点还可以包括:限流模块,用于在该服务调用节点是分布式集群的接入层节点时,当该服务调用节点本地暂存的服务调用请求的数量超过预设暂存数量门限时,对来自分布式集群外部的触发产生服务调用请求的外部请求进行限流。
值得说明的是,本实施例提供的服务调用节点同时也可以作为服务提供节点,因此也可以具有下述实施例提供的服务提供节点的功能和结构,具体不再赘述。
本实施例提供的服务调用节点,基于服务提供节点的能力表征参数确定最终向服务调用节点提供服务的目标节点,这样可以优先选择服务能力强的服务提供节点作为目标节点,不至于导致某个服务提供节点的处理压力过大,有利于均衡服务提供节点之间的处理压力;另外,由于本实施例服务调用节点所使用的能力表征参数反映了服务提供节点的服务性能,也就是说服务提供节点可以优先保证其服务性能,因此可以保证服务提供节点所提供的服务质量。由此可见,采用本实施例提供的服务调用节点一方面可以均衡服务提供节点之间的处理压力,另一方面还可以保证服务提供节点所提供的服务质量,因此可以提高整个系统的服务能力。
图8为本申请一实施例提供的服务提供节点的结构示意图。该服务提供节点可以位于分布式集群中,是分布式集群中多个节点中的一个节点,可以向多个节点中不同于该服务提供节点的服务调用节点提供服务,但不限于此。如图8所示,该服务提供节点包括:确定模块81和提供模块82。
确定模块81,用于确定该服务提供节点的能力表征参数,所述能力表征参数用于表征服务提供节点根据服务提供节点的服务性能对服务提供节点的当前服务能力进行修正后可提供的服务能力。
其中,服务提供节点的能力表征参数可以是服务提供节点的服务能力参数,该服务能力参数用于表征服务提供节点根据自身的服务性能对当前服务能力进行修正后可提供的服务能力;服务能力参数越大表示该服务提供节点可提供的服务能力越强。或者,服务提供节点的能力表征参数可以是服务提供节点的处理压力参数,该处理压力参数用于表征服务提供节点根据自身的服务性能对当前处理压力进行修正后的处理压力;处理压力参数越大表示该服务提供节点的处理压力越大,相应的可提供的服务能力就越弱。
提供模块82,与确定模块81连接,用于向服务调用节点提供确定模块81确定的能力表征参数,以使服务调用节点根据该能力表征参数,从至少一个服务提供节点中确定目标节点并请求调用目标节点所提供的服务。
在一可选实施方式中,确定模块81具体可用于根据服务提供节点的服务性能对服务提供节点的当前处理压力进行修正,以获得作为能力表征参数的处理压力参数。
在一可选实施方式中,确定模块81具体可用于将服务提供节点的当前队列消息数与预设的队列阈值的比值作为服务提供节点的实际处理压力,并在服务提供节点的服务性能要求响应速度时,增大该实际处理压力以获得处理压力参数,或者在服务提供节点的服务性能要求吞吐量时,减小该实际处理压力以获得处理压力参数。
在一可选实施方式中,确定模块81具体可用于在服务提供节点的服务性能要求响应速度时,获取服务提供节点的当前队列消息数的平方根与预设的队列阈值的平方根的比值作为处理压力参数,或者在服务提供节点的服务性能要求吞吐量时,获取服务提供节点的当前队列消息数的平方与预设的队列阈值的平方的比值作为处理压力参数。
在一可选实施方式中,提供模块82具体可用于定时或者在能力表征参数发生变化时,将能力表征参数发送给配置中心,以供服务调用节点从配置中心获取能力表征参数。
值得说明的是,本实施例提供的服务提供节点同时也可以作为服务调用节点,因此也可以具有前述实施例提供的服务调用节点的功能和结构,具体不再赘述。
本实施例提供的服务提供节点,与前述实施例提供的服务调用节点相配合,将能力表征参数提供给服务调用节点,以供服务调用节点根据该能力表征参数确定最终向服务调用节点提供服务的目标节点,这样服务调用节点可以优先选择服务能力强的服务提供节点作为目标节点,不至于导致某个服务提供节点的处理压力过大,有利于均衡服务提供节点之间的处理压力;另外,本实施例提供的服务提供节点的能力表征参数反映了服务提供节点的服务性能,因此可以保证其服务性能,因此可以保证服务提供节点所提供的服务质量。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(RandomAccessMemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (18)

1.一种服务调用方法,其特征在于,包括:
服务调用节点获取可以向所述服务调用节点提供服务的至少一个服务提供节点的能力表征参数;所述能力表征参数用于表征所述服务提供节点根据所述服务提供节点的服务性能对所述服务提供节点的当前服务能力进行修正后可提供的服务能力;
所述服务调用节点根据所述至少一个服务提供节点的能力表征参数,从所述至少一个服务提供节点中确定目标节点;
所述服务调用节点将服务调用请求发送给所述目标节点,以调用所述目标节点提供的服务。
2.根据权利要求1所述的方法,其特征在于,所述服务调用节点获取可以向所述服务调用节点提供服务的至少一个服务提供节点的能力表征参数,包括:
所述服务调用节点定时向配置中心发送参数请求,以请求获取所述至少一个服务提供节点的能力表征参数;
所述服务调用节点接收所述配置中心根据所述参数请求返回的所述至少一个服务提供节点的能力表征参数;或者,
所述服务调用节点接收配置中心在所述至少一个服务提供节点中每个服务提供节点的能力表征参数发生变化时主动发送的所述每个服务提供节点的能力表征参数;
其中,所述配置中心存储有所述每个服务提供节点的能力表征参数。
3.根据权利要求1或2所述的方法,其特征在于,所述能力表征参数为处理压力参数,所述处理压力参数表征所述服务提供节点根据所述服务提供节点的服务性能对所述服务提供节点的当前处理压力进行修正后的处理压力;
所述服务调用节点根据所述至少一个服务提供节点的能力表征参数,从所述至少一个服务提供节点中确定目标节点,包括:
所述服务调用节点根据所述至少一个服务提供节点的处理压力参数,确定是否存在处理压力参数小于预设参数门限的服务提供节点;
若确定存在处理压力参数小于所述参数门限的服务提供节点,所述服务调用节点从处理压力参数小于所述参数门限的服务提供节点中选择处理压力参数最小的服务提供节点作为所述目标节点;
若确定不存在处理压力参数小于所述参数门限的服务提供节点,所述服务调用节点将所述服务调用请求暂存在本地等待,直到出现处理压力参数小于所述参数门限的服务提供节点为止,从所出现的处理压力参数小于所述参数门限的服务提供节点中选择处理压力参数最小的服务提供节点作为所述目标节点。
4.根据权利要求3所述的方法,其特征在于,还包括:
如果所述服务调用节点是所述分布式集群的接入层节点,则当所述服务调用节点本地暂存的服务调用请求的数量超过预设暂存数量门限时,对来自所述分布式集群外部的触发产生所述服务调用请求的外部请求进行限流。
5.一种服务提供方法,其特征在于,包括:
服务提供节点确定所述服务提供节点的能力表征参数,所述能力表征参数用于表征所述服务提供节点根据所述服务提供节点的服务性能对所述服务提供节点的当前服务能力进行修正后可提供的服务能力;
所述服务提供节点向服务调用节点提供所述能力表征参数,以使所述服务调用节点根据所述能力表征参数,从至少一个所述服务提供节点中确定目标节点并请求调用所述目标节点所提供的服务。
6.根据权利要求5所述的方法,其特征在于,所述服务提供节点确定所述服务提供节点的能力表征参数,包括:
所述服务提供节点根据所述服务提供节点的服务性能对所述服务提供节点的当前处理压力进行修正,以获得作为所述能力表征参数的处理压力参数。
7.根据权利要求6所述的方法,其特征在于,所述服务提供节点根据所述服务提供节点的服务性能对所述服务提供节点的当前处理压力进行修正,以获得作为所述能力表征参数的处理压力参数,包括:
所述服务提供节点将当前队列消息数与预设的队列阈值的比值作为所述服务提供节点的实际处理压力;
如果所述服务提供节点的服务性能要求响应速度,所述服务提供节点增大所述实际处理压力以获得所述处理压力参数;
如果所述服务提供节点的服务性能要求吞吐量,所述服务提供节点减小所述实际处理压力以获得所述处理压力参数。
8.根据权利要求6所述的方法,其特征在于,所述服务提供节点根据所述服务提供节点的服务性能对所述服务提供节点的当前处理压力进行修正,以获得作为所述能力表征参数的处理压力参数,包括:
如果所述服务提供节点的服务性能要求响应速度,所述服务提供节点获取当前队列消息数的平方根与预设的队列阈值的平方根的比值作为所述处理压力参数;
如果所述服务提供节点的服务性能要求吞吐量,所述服务提供节点获取当前队列消息数的平方与预设的队列阈值的平方的比值作为所述处理压力参数。
9.根据权利要求5或6或7或8所述的方法,其特征在于,所述服务提供节点向服务调用节点提供所述能力表征参数,包括:
所述服务提供节点定时或者在所述能力表征参数发生变化时,将所述能力表征参数发送给配置中心,以供所述服务调用节点从所述配置中心获取所述能力表征参数。
10.一种服务调用节点,其特征在于,包括:
获取模块,用于获取可以向所述服务调用节点提供服务的至少一个服务提供节点的能力表征参数,所述能力表征参数用于表征所述服务提供节点根据所述服务提供节点的服务性能对所述服务提供节点的当前服务能力进行修正后可提供的服务能力;
确定模块,用于根据所述至少一个服务提供节点的能力表征参数,从所述至少一个服务提供节点中确定目标节点;
发送模块,用于将服务调用请求发送给所述目标节点,以调用所述目标节点提供的服务。
11.根据权利要求10所述的节点,其特征在于,所述获取模块具体用于定时向配置中心发送参数请求,以请求获取所述至少一个服务提供节点的能力表征参数,接收所述配置中心根据所述参数请求返回的所述至少一个服务提供节点的能力表征参数;或者
所述获取模块具体用于接收配置中心在所述至少一个服务提供节点中每个服务提供节点的能力表征参数发生变化时主动发送的所述每个服务提供节点的能力表征参数;
其中,所述配置中心存储有所述每个服务提供节点的能力表征参数。
12.根据权利要求10或11所述的节点,其特征在于,所述确定模块具体用于在所述能力表征参数为处理压力参数时,根据所述至少一个服务提供节点的处理压力参数,确定是否存在处理压力参数小于预设参数门限的服务提供节点,在确定存在处理压力参数小于所述参数门限的服务提供节点时,从处理压力参数小于所述参数门限的服务提供节点中选择处理压力参数最小的服务提供节点作为所述目标节点,或者在确定不存在处理压力参数小于所述参数门限的服务提供节点时,将所述服务调用请求暂存在本地等待,直到出现处理压力参数小于所述参数门限的服务提供节点为止,从所出现的处理压力参数小于所述参数门限的服务提供节点中选择处理压力参数最小的服务提供节点作为所述目标节点;
其中,所述处理压力参数表征所述服务提供节点根据所述服务提供节点的服务性能对所述服务提供节点的当前处理压力进行修正后的处理压力。
13.根据权利要求12所述的节点,其特征在于,还包括:
限流模块,用于在所述服务调用节点是所述分布式集群的接入层节点时,当所述服务调用节点本地暂存的服务调用请求的数量超过预设暂存数量门限时,对来自所述分布式集群外部的触发产生所述服务调用请求的外部请求进行限流。
14.一种服务提供节点,其特征在于,包括:
确定模块,用于确定所述服务提供节点的能力表征参数,所述能力表征参数用于表征所述服务提供节点根据所述服务提供节点的服务性能对所述服务提供节点的当前服务能力进行修正后可提供的服务能力;
提供模块,用于向服务调用节点提供所述能力表征参数,以使所述服务调用节点根据所述能力表征参数,从至少一个所述服务提供节点中确定目标节点并请求调用所述目标节点所提供的服务。
15.根据权利要求14所述的节点,其特征在于,所述确定模块具体用于根据所述服务提供节点的服务性能对所述服务提供节点的当前处理压力进行修正,以获得作为所述能力表征参数的处理压力参数。
16.根据权利要求15所述的节点,其特征在于,所述确定模块具体用于将所述服务提供节点的当前队列消息数与预设的队列阈值的比值作为所述服务提供节点的实际处理压力,并在所述服务提供节点的服务性能要求响应速度时,增大所述实际处理压力以获得所述处理压力参数,或者在所述服务提供节点的服务性能要求吞吐量时,减小所述实际处理压力以获得所述处理压力参数。
17.根据权利要求15所述的节点,其特征在于,所述确定模块具体用于在所述服务提供节点的服务性能要求响应速度时,获取所述服务提供节点的当前队列消息数的平方根与预设的队列阈值的平方根的比值作为所述处理压力参数,或者在所述服务提供节点的服务性能要求吞吐量时,获取所述服务提供节点的当前队列消息数的平方与预设的队列阈值的平方的比值作为所述处理压力参数。
18.根据权利要求14或15或16或17所述的节点,其特征在于,所述提供模块具体用于定时或者在所述能力表征参数发生变化时,将所述能力表征参数发送给配置中心,以供所述服务调用节点从所述配置中心获取所述能力表征参数。
CN201410452908.6A 2014-09-09 2014-09-09 服务调用方法、提供方法及节点 Active CN105430028B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410452908.6A CN105430028B (zh) 2014-09-09 2014-09-09 服务调用方法、提供方法及节点

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410452908.6A CN105430028B (zh) 2014-09-09 2014-09-09 服务调用方法、提供方法及节点

Publications (2)

Publication Number Publication Date
CN105430028A true CN105430028A (zh) 2016-03-23
CN105430028B CN105430028B (zh) 2019-03-29

Family

ID=55507969

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410452908.6A Active CN105430028B (zh) 2014-09-09 2014-09-09 服务调用方法、提供方法及节点

Country Status (1)

Country Link
CN (1) CN105430028B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106339296A (zh) * 2016-08-31 2017-01-18 虎扑(上海)文化传播股份有限公司 服务状态监测方法和装置
CN108259595A (zh) * 2018-01-11 2018-07-06 北京值得买科技股份有限公司 一种服务间异步调用的方法及系统
CN109298958A (zh) * 2018-10-26 2019-02-01 恒生电子股份有限公司 服务的调用方法及相关系统
CN110798411A (zh) * 2018-08-03 2020-02-14 阿里巴巴集团控股有限公司 服务调用方法、流量调度方法及装置
CN116132367A (zh) * 2022-08-17 2023-05-16 马上消费金融股份有限公司 一种消息处理方法、装置及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030158940A1 (en) * 2002-02-20 2003-08-21 Leigh Kevin B. Method for integrated load balancing among peer servers
CN101355522A (zh) * 2008-09-18 2009-01-28 中兴通讯股份有限公司 一种媒体服务器的控制方法和系统
CN101997922A (zh) * 2010-11-19 2011-03-30 武汉大学 基于代价优化的p2p流媒体覆盖网拓扑构造调整方法
WO2011154311A1 (en) * 2010-06-08 2011-12-15 Alcatel Lucent Device and method for data load balancing
CN103327046A (zh) * 2012-03-21 2013-09-25 腾讯科技(深圳)有限公司 基于节点服务能力的p2sp系统调度方法、设备和系统
CN103457870A (zh) * 2013-09-25 2013-12-18 武汉理工大学 用于分布式系统的负载均衡及高可用性子系统及方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030158940A1 (en) * 2002-02-20 2003-08-21 Leigh Kevin B. Method for integrated load balancing among peer servers
CN101355522A (zh) * 2008-09-18 2009-01-28 中兴通讯股份有限公司 一种媒体服务器的控制方法和系统
WO2011154311A1 (en) * 2010-06-08 2011-12-15 Alcatel Lucent Device and method for data load balancing
CN101997922A (zh) * 2010-11-19 2011-03-30 武汉大学 基于代价优化的p2p流媒体覆盖网拓扑构造调整方法
CN103327046A (zh) * 2012-03-21 2013-09-25 腾讯科技(深圳)有限公司 基于节点服务能力的p2sp系统调度方法、设备和系统
CN103457870A (zh) * 2013-09-25 2013-12-18 武汉理工大学 用于分布式系统的负载均衡及高可用性子系统及方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106339296A (zh) * 2016-08-31 2017-01-18 虎扑(上海)文化传播股份有限公司 服务状态监测方法和装置
CN108259595A (zh) * 2018-01-11 2018-07-06 北京值得买科技股份有限公司 一种服务间异步调用的方法及系统
CN110798411A (zh) * 2018-08-03 2020-02-14 阿里巴巴集团控股有限公司 服务调用方法、流量调度方法及装置
CN109298958A (zh) * 2018-10-26 2019-02-01 恒生电子股份有限公司 服务的调用方法及相关系统
CN116132367A (zh) * 2022-08-17 2023-05-16 马上消费金融股份有限公司 一种消息处理方法、装置及电子设备

Also Published As

Publication number Publication date
CN105430028B (zh) 2019-03-29

Similar Documents

Publication Publication Date Title
CN107241281B (zh) 一种数据处理方法及其装置
CN105430028A (zh) 服务调用方法、提供方法及节点
CN108449410A (zh) 一种云平台中消息管理方法、系统及相关装置
CN105653630A (zh) 分布式数据库的数据迁移方法与装置
CN103516744A (zh) 一种数据处理的方法和应用服务器及集群
CN105487987B (zh) 一种处理并发顺序读io的方法及装置
CN107977254B (zh) 云数据系统中请求的响应方法和计算机可读存储介质
CN104639347A (zh) 一种多集群监控方法、装置及系统
CN103944979A (zh) 一种消息推送方法、装置及系统
CN108696911A (zh) 一种物联网数据传输方式的选择方法和装置
CN104199912A (zh) 一种任务处理的方法及装置
CN113835844A (zh) 一种容器集群的管理方法、装置及云计算平台
CN111541762B (zh) 数据处理的方法、管理服务器、设备及存储介质
CN103631873A (zh) 一种数据压缩方法及存储系统
CN109561054B (zh) 一种数据传输方法、控制器及接入设备
CN108234551B (zh) 一种数据处理方法及装置
CN102137091B (zh) 一种过负荷控制方法、装置、系统及客户端
CN108259605B (zh) 一种基于多数据中心的数据调用系统及方法
CN105262604A (zh) 虚拟机迁移方法及设备
CN106790354B (zh) 一种防数据拥堵的通信方法及其装置
US10536393B2 (en) Mail obtaining method, terminal, and system
CN103299298A (zh) 处理业务的方法和系统
CN108712494A (zh) 处理异步消息的方法、装置及设备
CN102882906A (zh) 受限应用协议中数据通信的方法和装置
CN104536926A (zh) 串口设备的控制方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201009

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201009

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.