CN108633311B - 一种基于调用链的并发控制的方法、装置及控制节点 - Google Patents

一种基于调用链的并发控制的方法、装置及控制节点 Download PDF

Info

Publication number
CN108633311B
CN108633311B CN201780000205.1A CN201780000205A CN108633311B CN 108633311 B CN108633311 B CN 108633311B CN 201780000205 A CN201780000205 A CN 201780000205A CN 108633311 B CN108633311 B CN 108633311B
Authority
CN
China
Prior art keywords
service
service node
node
concurrency
threshold
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
Application number
CN201780000205.1A
Other languages
English (en)
Other versions
CN108633311A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN108633311A publication Critical patent/CN108633311A/zh
Application granted granted Critical
Publication of CN108633311B publication Critical patent/CN108633311B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1042Peer-to-peer [P2P] networks using topology management mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling 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/61Scheduling 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

Abstract

本申请公开了一种基于调用链的并发控制的方法、装置及控制节点,该方法应用于基于调用链的并发控制系统,并发控制系统包括控制节点、多个服务节点,该方法包括:控制节点获取多个服务节点中每个服务节点的分析统计数据;根据每个服务节点的分析统计数据确定并发数阈值不合理的目标服务节点;获取目标服务节点的并发数阈值,以及目标服务节点的相邻服务节点的并发数阈值和权重信息;根据目标服务节点的并发数阈值、分析统计数据、以及目标服务节点的相邻服务节点的并发数阈值和权重信息确定目标服务节点更新后的并发数阈值;向目标服务节点发送并发数阈值调整请求。从而保障系统的稳定与可靠性,降低业务请求处理的时延,提升调用链系统性能。

Description

一种基于调用链的并发控制的方法、装置及控制节点
技术领域
本发明涉及互联网和云计算领域,具体涉及一种基于调用链的并发控制的方法、装置及控制节点。
背景技术
随着互联网和云计算的发展,越来越多的公司采用了分布式的架构,通过将应用拆分成微服务的方式,更好的解耦与组合,以满足业务快速发展的需求。当业务拆分的越来越细时,一次业务请求可能涉及到大量服务的调用,为了监控服务调用的情况,很多分布式应用都采用了调用链技术,在服务的调用链中通过打印日志的方式记录每个服务调用的响应时间、参数信息,并利用调用链的日志监控服务的性能。
对大型的分布式应用而言,并发控制是应用性能和可靠性的保障,为了控制并发,目前通用的做法是各个服务节点单独对其设置不同的并发数阈值。调整时并发数阈值导致系统性能要求当调用链系统因为服务节点故障或扩容导致调用链系统中的某一个服务节点的并发数阈值无法保证其上级或下级服务节点业务需求时,导致应用的性能和可靠性无法得到保障,影响整个系统的可靠性和性能。
发明内容
本申请提供了一种基于调用链的并发控制的方法、装置及控制节点,可以对并发控制系统中的服务节点的并发数阈值进行调整,以保障并发控制系统的性能和可靠性。
第一方面,本申请提供了一种基于调用链的并发控制的方法,该方法应用于基于调用链的并发控制系统,该并发控制系统包括控制节点、多个服务节点,每个服务节点可以用于部署应用服务,控制节点可以对并发控制系统中服务节点的并发数阈值调整过程如下:首先,控制节点获取该并发控制系统中服务节点的分析统计数据,并根据该分析统计数据确定服务节点中并发数阈值不合理的目标服务节点,该分析统计数据包括每个服务节点处理业务请求的时延、处理结果、以及和其他服务节点之间的调用关系;然后控制节点再获取目标节点的并发数阈值、目标服务节点的相邻服务节点的并发数阈值和权重信息,其中,并发数阈值用于标识一个服务节点在并发控制系统中能够被并发调用的最大值;权重信息用于标识目标服务节点的相邻服务节点的并发数的比例关系;接下来,控制节点根据目标服务节点的并发数阈值、分析统计数据、以及目标服务节点的相邻服务节点的并发数阈值和权重信息确定目标服务节点更新后的并发数阈值;最后,控制节点向目标服务节点发送携带更新后的并发数阈值的并发数阈值调整请求。
在业务请求处理过程中,相邻的服务节点之间存在调用关系,任一服务节点可以同时被多个相邻的上级服务节点或下级服务节点调用的过程称为并发,任一服务节点同时被多个服务节点并发调用的次数称为并发数,每个服务节点能够被多个上级服务节点或下级服务节点同时调用的最大值称为该服务节点的并发数阈值。
在基于调用链的并发控制系统中采用分布式服务调用关系,业务请求的处理过程需要按照预置顺序依次经过各个服务节点,对于任一服务节点,在业务请求的处理过程中,需要在该服务节点之前完成业务请求处理过程的服务节点称为该服务节点的上级服务节点,需要在该服务节点之后完成业务请求处理过程的服务节点称为该服务节点的下级服务节点,上级服务节点和下级服务节点是相对于一个指定服务节点的概念,随着指定服务节点的变化,其上级服务节点和下级服务节点的对应关系也会随之变化,其中,上级服务节点包括需要在该服务节点之前完成业务请求处理且与该服务节点存在直接调用关系的服务节点,以及需要在该服务节点之前完成业务请求处理且与该服务节点存在非直接调用关系的其他服务节点;下级服务节点包括需要在该服务节点之后完成业务请求处理且与服务节点存在直接调用关系的服务节点,以及需要在该服务节点之后完成业务请求处理且与该服务节点存在非直接调用关系的其他服务节点,为了描述方便,可以把上级和下级服务节点统称为相邻服务节点。
值得说明的是,该权重信息可以由用户指定,也可设置为系统默认值。另外,权重信息是同一个服务节点的两个或两个以上服务节点的并发数阈值的比例关系,当某个服务节点的上级服务节点或下级服务节点仅有一个时,其权重信息为1,假设服务节点B仅有一个下级服务节点D,则服务节点D的权重为1,当服务节点的并发数阈值等于服务节点B的并发数阈值时,此时服务节点D可以调用服务节点B的所有资源处理业务请求。
可选地,分析统计数据中还可以包括每个服务节点处理业务请求的标识、数量信息。
值得说明的是,控制节点可以根据业务需求周期性获取分析统计数据、并发数阈值和权重信息,也可以实时收集上述信息,以便更好的对基于调用链的并发控制系统中各服务节点的并发数阈值进行调整和控制。
本申请提供的上述可能的技术方案中,控制节点可以监控并发控制系统中服务节点的状态和服务调用情况,并对并发控制系统中目标服务节点的并发数阈值进行调整,使得目标服务节点更新后的并发数阈值能满足并发能力调用关系,以此解决现有技术中并发数阈值不合理所导致的基于调用链的并发控制系统处理性能下降的问题,保障基于调用链的并发控制系统的稳定与可靠性,降低业务请求处理的时延,提升处理业务请求的性能。
在第一方面的一种可能的实现方式中,所述目标服务节点为分析统计数据的处理结果中处理业务请求失败的服务节点。当控制节点根据分析统计数据中的处理结果确定存在处理结果为失败的服务节点时,确定该服务节点为并发数阈值不合理的目标服务节点。由于对于并发数阈值正常的服务节点来说,各服务节点的能够正常处理业务请求,而一旦检测到某个业务请求的处理过程在某个服务节点上失败时,则说明该服务节点可能发生故障,进而确定该服务节点为并发数阈值不合理的目标服务节点,使得不合理的服务节点确定准确。
进一步地,服务节点可能在以下任意一种情况下处理业务请求的结果为失败:
情况一:目标服务节点的并发数阈值设置过小,目标服务节点无法满足上级服务节点或下级服务节点的调用关系。
情况二:目标服务节点出现部分硬件故障,目标服务节点的处理能力下降。例如,目标服务节点中部分CPU故障。
情况三:目标服务节点的网络存在网络故障,例如网络闪断。
在第一方面的另一种可能的实现方式中,控制节点可以通过分析统计数据中一个业务请求确定并发数阈值不合理的目标服务节点,也可以通过检测多个具有相同服务节点的业务请求中断情况来确定并发数阈值不合理的目标服务节点。由于对于单业务请求来说,可能由于网络闪断导致业务请求中断,当网络闪断恢复后业务请求又可以继续处理,故分析多个业务请求的中断情况,将使得分析结果更为准确。
在第一方面的另一种可能的实现方式中,当控制节点根据分析统计数据确定存在业务请求的处理时延大于或等于预设阈值的服务节点时,可以确定该服务节点为并发数阈值不合理的目标服务节点。由于对并发数阈值正常的服务节点来说,各服务节点的业务请求时延应小于预设阈值,而一旦检测到某个业务请求在某个服务节点上的业务请求处理时延大于或等于预设阈值,则说明该服务节点可能发生故障(如服务节点的网卡故障所导致的网络故障),从而确定该服务节点为并发数阈值不合理的目标服务节点,使得不合理的服务节点确定准确。
在第一方面的另一种可能的实现方式中,控制节点可以通过检测多个具有相同服务节点的业务请求的时延来确定并发数阈值不合理的目标服务节点。由于对于单业务请求来说,可能由于网络闪断或其他在可自我恢复故障(如提供服务的进程异常)导致处理业务请求的时延大于或等于预设阈值,故分析多个业务请求时延,将使得分析更为准确。通过上述多种不同的方式来确定并发数不合理的目标服务节点,使得并发数不合理的服务节点的确定方式灵活。
在第一方面的另一种可能的实现方式中,控制节点确定目标服务节点更新后的并发数阈值的方法可以按照如下过程操作:首先,控制节点获取该并发控制系统的服务调用拓扑关系;然后根据该目标服务节点的并发数阈值、服务调用拓扑关系、以及上级服务节点或下级服务节点的并发数阈值和权重信息对目标服务节点更新后的并发数阈值。由于更新后的并发数阈值在拓扑关系中满足预设调用关系,从而保障调用链系统的稳定与可靠性,降低业务请求处理的时延,提升调用链系统性能。
值得说明的是,对于同一并发控制系统来说,其服务调用拓扑关系相对固定,控制节点可以在第一次获取到服务调用拓扑关系后,保存该服务调用拓扑关系,在接下来的并发数阈值调整过程中,以此服务调用拓扑关系为参考,对基于调用链的并发控制系统中服务节点的并发数阈值进行调整和控制,避免每次调整过程中均需要获取该服务调用拓扑关系所导致的资源浪费。
在第一方面的另一种可能的实现方式中,所述基于调用链的并发控制系统还包括信息处理节点,该信息处理节点用于获取该多个服务节点的分析统计数据,并利用该分析统计数据中每个服务节点和其他服务节点的之间的调用关系,分析该并发控制系统的服务调用拓扑关系,此时,控制节点从信息处理节点获取的分析统计数据中还包括服务调用拓扑关系;或者,控制节点也可以基于分析统计数据中每个服务节点和其他服务节点的之间的调用关系分析该并发控制系统的服务调用拓扑关系。
进一步地,控制节点可以基于服务调用拓扑关系确定并发数阈值不合理的目标服务节点,相比于直接通过分析统计数据分析并发数阈值不合理的目标服务节点的方式,控制节点可以通过服务调用拓扑关系获知整个并发控制系统中服务调用关系,更快速确定并发数阈值不合理的目标服务节点。
在第一方面的另一种可能的实现方式中,控制节点在确定完目标服务节点更新后的并发数阈值后,可再次确定目标服务节点相邻的服务节点为新的目标服务节点,并使用同样的方式对新的目标服务节点的并发数阈值进行调整。重复该过程,最终可完成对整个并发控制系统中所有服务节点的并发数阈值的调整。
在第一方面的另一种可能的实现方式中,控制节点在确定目标服务节点更新后的并发数阈值后,再根据服务调用拓扑关系、目标服务节点更新后的并发数阈值、以及目标服务节点相邻的服务节点的并发数阈值和权重信息,对目标服务节点的相邻服务节点进行调整,以得到该相邻服务节点更新后的并发数阈值;然后控制节点向该相邻服务节点发送所述相邻服务节点更新后的并发数阈值。以实现对目标服务节点的相邻服务节点的并发数阈值的调整。
更进一步地,通过重复使用上述方式对目标服务节点的相邻的上级服务节点以及下级服务节点的并发数阈值进行调整,可最终实现对整个并发控制系统的服务节点的并发数阈值的调整。
第二方面,本申请提供一种基于调用链的并发控制的装置,该装置具有实现上述第一方面及第一方面的任意一种可能的实现方式中基于调用链的并发控制方法的各个模块,所述模块可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
第三方面,本申请提供一种控制节点,该控制节点包括处理器、存储器、通信接口、总线,所述处理器、存储器和通信接口之间通过总线连接并完成相互间的通信,所述存储器中用于存储计算机执行指令,所述控制节点运行时,所述处理器执行所述存储器中的计算机执行指令以利用所述控制节点中的硬件资源执行第一方面及第一方面的任意一种可能的实现方式中基于调用链的并发控制方法的操作步骤。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
相较于现有技术,本发明实施例的技术方案中,控制节点通过获取服务节点的分析统计数据、并发数阈值和权重信息,可以监控基于调用链的并发控制系统中服务的调用关系,调整服务节点的并发数阈值,使得更新后的并发数阈值能满足并发能力调用关系,以此解决现有技术中基于调用链的并发控制系统中并发数阈值不合理所导致的并发控制系统处理性能下降的问题,保障基于调用链的并发控制系统的稳定与可靠性,降低业务请求处理的时延,提升处理业务请求的整体性能。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面结合附图对本发明的技术方案进行详细介绍。
图1是本发明实施例提供的一种基于调用链的并发控制系统的架构示意图;
图2是本发明实施例提供的一种基于调用链的并发控制系统中分布式服务调用关系示意图;
图3是现有技术中提供的一种基于调用链的并发控制系统中服务节点自身控制并发数阈值示意图;
图4是本发明实施例提供的一种基于调用链的并发控制方法的流程示意图;
图5是本发明实施例提供的一种基于调用链的并控制系统的服务调用拓扑关系示意图;
图6是本发明实施例提供的一种控制节点的结构示意图;
图7是本发明实施例提供的另一种控制节点的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
参见图1,图1是本发明实施例提供的一种基于调用链的并发控制系统100的架构示意图,如图1所示,该并发控制系统包括至少一个服务节点110、控制节点120以及信息处理节点130。
服务节点110用于部署应用服务,每个应用服务可以利用一个单独的服务节点110部署,也可以利用多个服务节点110组成的集群部署,其中,应用服务是指运行同一业务应用所需的服务,如淘宝购物应用包括三个应用服务:Web服务、订单服务、支付服务,当用户通过淘宝购物时,需要先通过Web服务选择所需商品;再通过订单服务将所需商品添加到订单中并配置寄送地址;然后通过支付服务完成所需商品的购买。集群形式部署的应用服务中,每个服务节点部署相同的业务应用,不同服务节点之间采用负载均衡策略,以保证应用服务的可靠性和处理效率。
示例地,如图1所示,应用服务A需要利用一个单独的服务节点A部署,应用服务H为高负载的应用服务,需要利用多个服务节点组成的集群部署,服务节点H1、服务节点H2、服务节点H3同时部署应用服务H,其中,服务节点H1、服务节点H2、服务节点H3之间采用负载均衡策略共同承担应用服务H的处理过程,以此保证该应用服务H的可靠性和处理效率。
可选地,应用服务也可以采用分布式形式部署,将处理业务请求的应用服务拆分成不同的子服务分别部署在不同的服务节点上,对于应用服务中负载高的子服务也可以采用多个服务节点组成的集群形式部署,以此来更好的解耦与组合不同应用服务之间的调用关系。例如,对于某个应用服务来说,可以拆分成服务A、服务B、服务C,各子服务可以部署在一个或多个服务节点110上,每个子服务可以部署在一个服务节点上,也可以部署在由多个服务节点组成的集群上,还可以为同时部署在单个服务节点与集群上,在业务请求处理过程中,相邻的服务节点之间存在调用关系,任一服务节点可以同时被多个相邻的上级服务节点或下级服务节点调用的过程称为并发,任一服务节点同时被多个服务节点并发调用的次数称为并发数,每个服务节点能够被多个上级服务节点或下级服务节点同时调用的最大值称为该服务节点的并发数阈值,例如,某应用服务的调用关系为服务A->服务B,假设服务A由3个服务节点组成的集群部署,服务B由单个服务节点部署,那么,部署服务A的3个服务节点可以同时调用部署服务B的服务节点完成业务请求的处理过程称为并发;当前时刻服务A中每个服务节点同时调用部署服务B的服务节点的次数称为部署服务B的服务节点的并发数;当前时刻部署服务A的3个服务节点能够被部署服务B的服务节点同时调用的最大值称为部署服务A的服务节点的并发数阈值,其中服务A的并发数阈值为每个部署服务A的服务节点的并发数阈值之和。
各服务节点之间根据应用服务的处理过程形成调用链,其中,同一个并发控制系统100中可包括至少一个调用链,每个调用链用于标识一个业务应用中应用服务处理过程的轨迹。例如参见图2,图2是本发明实施例提供的一种基于调用链的并发控制系统中分布式服务调用关系示意图。如图2所示,该并发控制系统包括2条调用链,业务请求1需要依次经过服务A、服务B、服务D、服务E、服务F的处理过程,那么业务请求A对应的调用链为服务A->服务B->服务D->服务E->服务F,而业务请求2需要依次经过服务A、服务C、服务E、服务F的处理过程,那么业务请求2对应的调用链为服务A->服务C->服务E->服务F,当接收用户的业务请求时,不同业务请求会经过不同调用链完成对应用服务的处理过程。
值得说明的是,对于同一个服务节点而言,每个服务节点可以仅部署一种应用服务或一个应用服务的一个子服务,也可以同时部署多种应用服务或一个应用服务的多个子服务或多个应用服务的多个子服务,本发明不作限制,为便于描述,本发明的以下描述中,以每个服务节点仅部署一个应用服务的一个子服务为例进行具体描述。
控制节点120用于对基于调用链的并发控制系统100中服务节点的并发数阈值进行动态调整。具体地,该控制节点120可以采用单个物理服务器或虚拟机部署,也可以采用合布方式,即控制节点与部署其它应用服务的服务节点共同部署在同一个物理服务器中实现。
信息处理节点130用于收集各个服务节点110的日志,并根据日志中记录内容生成分析统计数据,该分析统计数据包括各个服务节点110处理业务请求的时延、处理结果、和其他服务节点之间的调用关系,例如成功或失败,也即各个业务请求在各个服务节点110上的是否有中断的情况。具体地,该信息处理节点130可以部署在独立物理服务器或虚拟机中。
具体地,基于图2所示的分布式调用链关系,服务节点可以通过日志的方式记录每一个业务请求调用的响应时间、输入参数等信息,日志中遵循统一的日志打点模型,每个业务请求可以自定义日志记录内容,例如TraceId|CalledNodeId|...|Span,其中,TraceId用于唯一标识每个业务请求,TraceId由应用服务的起始服务节点生成并沿着调用链传递,其中,应用服务的起始服务节点也称为根节点;CalledNodeId用于标识业务请求处理过程中所经过的服务节点,也即可以标识业务请求处理过程中当前服务节点与其它服务节点之间的调用关系,从而通过依次分析某个TraceId处理过程中经过的所有服务节点确定拓扑关系,如TraceId为1的业务请求的根节点为服务节点A,服务节点A调用服务节点B,服务节点B调用服务节点D,服务节点D调用服务节点E,以及服务节点E调用服务节点F,由此,可以得到一次业务请求的调用链。若服务节点的日志中还记录有另一个TraceId所对应的根节点也是服务节点A,服务节点A调用服务节点C,服务节点C调用服务节点E,服务节点E调用服务节点F,由此,又可以得到另一次业务请求的调用链,最后整合各个不同的调用链可以得到各服务节点之间的服务调用拓扑关系;Span用于标识业务请求在经过各服务节点的时延,从而可得到各业务请求在各个服务节点上的处理时延。
可选地,当某个子服务以集群形式部署时,在部署子服务的每个服务节点的日志中,还可以记录有该子服务部署形式信息,例如,服务E由服务节点E1、服务节点E2、服务节点E3组成,在服务节点E1、服务节点E2、服务节点E3的日志中均记录该服务以集群形式部署,以及同一集群中其他服务节点标识,其中,服务节点的标识可以为服务节点的名称或IP。
可选地,在服务节点的日志中,还可以根据业务需要记录其它服务调用参数,例如,记录各次业务请求在各服务节点的处理结果。示例地,可以通过添加Result标识,记录每个TraceId在每个服务节点的调用是否成功,例如,通过Result0标识业务请求TraceId的调用成功,通过Result1标识业务请求TraceId的调用失败,从而可得到各个业务请求在各个服务节点上的处理结果。TraceId在用户入口调用的时候生成,然后在部署服务A、服务B、服务C、服务D、服务E、服务F的各服务节点中逐个传递,每个业务请求在处理时都需要传递TraceId,信息处理节点会收集并对服务节点所记录的日志进行处理,根据TraceId统计出一次业务请求的完整调用链信息,根据调用链信息可以很容易分析出业务请求处理过程中的性能情况。表1示出了一种基于调用链的并发控制系统中分布式服务调用关系的分析统计数据的示例,其中,Span AB用于表示业务请求从服务节点A到达服务节点B所经历的时间,也即代表服务节点A的时延,依此可知Span AC,Span BD、Span CE、Span DE、Span EF的含义;假设当TraceId为1时,表示调用链经过服务节点A->服务节点B->服务节点D->服务节点E->服务节点F的一次业务请求;TraceId为2时,表示调用链经过服务节点A->服务节点C->服务节点E->服务节点F的一次业务请求。信息处理节点可以根据其他TraceId确定该TraceId所对应的业务请求所调用的各个服务节点的情况。
更进一步地,信息处理节点在获取各个服务节点在业务请求处理时记录的日志后,可以根据TraceId确定同一个业务请求处理时所经过的所有服务节点,如表1所示数据,信息处理节点可以通过统计同一TraceId所经过的各个服务节点,以及该TraceId所对应的数据(如SpanId),由此确定各服务节点的业务请求个数、业务请求时延、处理结果、和其他服务节点之间的调用关系,并进一步分析各服务节点和其他服务节点之间的调用关系确定并发控制系统中服务调用拓扑关系。
表1
TraceId Span AB Span AC Span BD Span CE Span DE Span EF ...
1 <数据1> <数据2> <数据3> <数据4> ...
2 <数据5> <数据6> <数据7> ...
... ... ... ... ... ...
可选地,信息处理节点收集服务节点的日志的形式可以是周期性收集,也可以是实时收集。
可选地,分析统计数据中还可以包括每个服务节点处理业务请求的标识、数量信息。
可选地,图1中控制节点120和信息处理节点130也可以合布在一个物理服务器或虚拟机中,该物理服务器或虚拟机不仅用于调整并发控制系统中服务节点的并发数阈值,还用于收集各个服务节点处理业务请求的时延、处理结果和其他服务节点之间的调用关系。
为了对图2所示的基于调用链的并发控制系统中服务节点的并发数阈值进行管理和控制,通常有两种控制方法,一种是在业务请求的调用起始处对部署同一应用服务的各子服务的服务节点110设置一个统一的并发数阈值,例如,通过统一接口或Web界面将各服务节点110的并发数阈值均设置为100,这种方式的问题在于顶层服务无法感知底层众多服务状态,其中,顶层服务是应用服务处理过程中起始的子服务,如服务A;底层服务是应用服务处理过程中与顶层服务存在非直接调用关系的子服务,如服务D、服务E、服务F是服务A的底层服务,但为了防止底层某子服务故障引起整个系统性能下降,预留了较多的资源,导致资源浪费。另一种是部署应用服务的各子服务的服务节点110各自设置不同的并发数阈值,如将自身最大可支持的并发数设置为该服务节点的并发数阈值。参见图3,图3是对应图2所示调用链系统的一种基于调用链的并发控制系统中各服务节点分别控制自身的并发数阈值示意图,如图3所示,服务A由服务节点A提供,服务B由服务节点B提供,服务C由服务节点C提供,服务D由服务节点D提供;服务E和服务F采用集群形式部署,服务E由服务节点E1、服务节点E2、服务节点E3共同部署;服务F由服务节点F1、服务节点F2、服务节点F3共同部署,集群中各个服务节点采用负载均衡策略完成每个调用链的处理过程。由各服务节点根据自身的最大可支持的并发数设置不同的并发数阈值,例如提供服务E的服务节点E1、服务节点E2以及服务节点E3均支持最大50的并发数,那么,提供服务E的集群的最大并发处理能力为150;提供服务F的服务节点F1、服务节点F2以及服务节点F3均最大支持50并发数,那么,提供服务F的集群的最大并发处理能力为150;服务节点C和服务节点D作为服务E的上级服务节点,并发数阈值分别为100和50。
在基于调用链的并发控制系统中采用分布式服务调用关系,业务请求的处理过程需要按照预置顺序依次经过各个服务节点,对于任一服务节点,在业务请求的处理过程中,需要在该服务节点之前完成业务请求处理过程的服务节点称为该服务节点的上级服务节点,需要在该服务节点之后完成业务请求处理过程的服务节点称为该服务节点的下级服务节点,上级服务节点和下级服务节点是相对于一个指定服务节点的概念,随着指定服务节点的变化,其上级服务节点和下级服务节点的对应关系也会随之变化,其中,上级服务节点包括需要在该服务节点之前完成业务请求处理且与该服务节点存在直接调用关系的服务节点,以及需要在该服务节点之前完成业务请求处理且与该服务节点存在非直接调用关系的其他服务节点;下级服务节点包括需要在该服务节点之后完成业务请求处理且与服务节点存在直接调用关系的服务节点,以及需要在该服务节点之后完成业务请求处理且与该服务节点存在非直接调用关系的其他服务节点,为了描述方便,可以把上级和下级服务节点统称为相邻服务节点。例如,服务节点A->服务节点B->服务节点C->服务节点D的调用关系中,对于服务节点C来说,服务节点A和服务节点B为其上级服务节点,服务节点B是在服务节点C之前完成业务处理且与服务节点C存在直接调用关系的上级服务节点,服务节点A是在服务节点C之前完成业务处理,但与服务节点C存在非直接调用关系的上级服务节点,服务节点D是其下级服务节点;而对于服务节点B,服务节点A是其上级服务节点,服务节点C和服务节点D是其下级服务节点,服务节点C是在服务节点B之后完成业务处理且与服务节点B存在直接调用关系的下级服务节点,服务节点D是在服务节点B之后完成业务处理,但与服务节点B存在非直接调用关系的下级服务节点。
但是利用上述方法对如图3所示的并发控制系统中服务节点的并发数阈值进行控制时,当提供服务E的某个服务节点故障,例如服务节点E1故障,提供服务E的集群的最大并发能力由150变成100,此时,若调用链系统中服务C和服务D对服务E的并发调用的并发数之和大于100,A和B的业务请求调用有可能会失败,但失败是在业务处理调用服务C或服务D时才感知服务E故障,此时,业务请求并未完成处理,服务节点E1的上级服务节点做了无用功,浪费资源。并且提供服务E的服务节点的并发能力之和下降,其下级调用节点的业务压力降低,但服务E的下行链路服务F依然提供3个服务节点规模的预留资源也导致资源浪费。
值得说明的是,当业务请求个数在服务E的并发能力之内时,此时依然能正常调用。或者,调用链系统中局部服务的并发控制可以做的较好,但无法保证整体并发控制效果,例如图3中,在服务A->服务C->服务E->服务F的调用链中,若服务E最大支持150并发数阈值,对于单服务节点而言并发数阈值的设置无问题,而服务节点A最多支撑250并发数,服务节点A的下级服务节点包括服务节点B和服务节点C,而服务节点B和服务节点C的并发数阈值之和为150,此时,服务节点A的并发数阈值大于服务节点B和服务节点C的并发数阈值之和,此时,服务节点A为支持250的并发数阈值会预留相应的资源,但实际处理业务请求时,预留资源存在冗余而导致资源浪费。
针对上述问题,本发明实施例提供了一种基于调用链的并发控制方法,通过由上述控制节点120获取到多个服务节点的分析统计数据确定并发数阈值不合理的目标服务节点后,再由控制节点120对目标服务节点的并发数阈值进行动态调整,从而可以实时保证由各服务节点组成的调用链系统的可靠性。
下面结合附图详细描述本发明的实施例,以便本领域技术人员理解。
参见图4,图4示出了本发明实施例提供的一种基于调用链的并发控制方法的流程示意图,该方法应用于图1所示的基于调用链的并发控制系统。如图4所示,该方法可以包括以下步骤:
S401、控制节点获取多个服务节点中每个服务节点的的分析统计数据。
其中,所述分析统计数据包括基于调用链的并发控制系统中各个服务节点处理业务请求的时延、处理结果和其他服务节点之间的调用关系。其中,处理结果用于标识处理业务请求成败状况,例如成功或失败,当处理结果为失败时,表示业务请求在服务节点处理过程中有中断的情况。该分析统计数据由如图1所示的调用链系统100中的信息处理节点根据其收集的各个服务节点的日志并分析获得。
进一步地,控制节点获取分析统计数据的方式,可以是控制节点向信息处理节点发送获取分析统计数据的请求消息,信息处理节点根据该请求消息将分析统计数据发送给控制节点。其中,控制节点获取分析统计数据可以是周期性操作,也可以是实时操作,本发明不作限制。
控制节点从信息处理节点获取到的分析统计数据的形式,可以是包括各个服务节点处理业务请求的时延、处理结果和其他服务节点之间的调用关系的分析统计数据;可选地,信息处理节点也可以对分析统计数据进行进一步分析,得到各服务节点之间的服务调用拓扑关系,此时,分析统计数据中还可以包括服务调用拓扑关系,此时控制节点根据分析统计数据可以更为直观地分析调用链系统的服务调用情况。
示例地,信息处理节点对分析统计数据进行进一步分析,通过TraceId追踪到各个调用链所经过的服务节点,然后再组合所有调用链形成各个服务节点之间的调用关系,也即该应用服务的服务调用拓扑关系。若控制节点获取到的是未经过进一步处理的分析统计数据,控制节点也可以通过该方式,进一步得到服务调用拓扑关系。使得处理方式更为灵活。
S402、控制节点根据分析统计数据确定并发数阈值不合理的目标服务节点。
具体地,控制节点根据S401获取的分析统计数据,分析并发数阈值不合理的目标服务节点,其中,控制节点确定并发数阈值不合理的目标服务节点的方式包括以下方式中的至少一种:
方式一:可以在检测到业务请求在某个服务节点失败时,确定该服务节点的并发数阈值不合理。
具体地,控制节点可以通过分析统计数据中的处理结果确定并发数阈值不合理的服务节点。当任一服务节点的分析统计数据中处理结果为失败时,确定该服务节点为并发数阈值不合理的目标服务节点。其中,服务节点可能在以下任意一种情况下出现处理业务请求的结果为失败:
情况一:目标服务节点的并发数阈值设置过小,目标服务节点无法满足上级服务节点或下级服务节点的调用关系。
情况二:目标服务节点出现部分硬件故障,目标服务节点的处理能力下降。例如,目标服务节点中部分CPU故障。
情况三:目标服务节点的网络存在网络故障,例如网络闪断。
可选地,控制节点可以通过检测某一个业务请求在某个服务节点是否失败来确定该服务节点是否为并发数阈值不合理的目标服务节点。
可选地,也可以是通过检测多个具有相同服务节点的业务请求的业务请求失败情况来确定并发数阈值不合理的目标服务节点。可以理解,由于对于单业务请求来说,可能由于网络闪断导致业务请求失败,当网络闪断恢复后业务请求又可以继续处理,故分析多个业务请求的失败情况,将使得分析结果更为准确。
示例地,在本发明的一个可能的实施例中,对于图2所示的调用链系统来说,假设每个服务由一个服务节点部署,控制节点首先获取各个服务节点的分析统计数据,根据每个服务节点的分析统计数据可以确定业务请求的处理过程,当根据分析统计数据获知某个服务节点的下级服务节点无分析统计数据或分析统计数据中处理结果为失败时,例如,控制节点获取的信息中无服务节点E的分析统计数据,此时,可以确定服务节点E出现故障,也即确定服务节点E为并发数阈值不合理的目标服务节点。
示例地,在本发明的另一个可能的实施例中,对于图2所示的基于调用链的并发控制系统,也可以同时通过分析多个业务请求的失败情况来确定并发数阈值不合理的目标服务节点。假设每个服务由一个服务节点部署,由图2可知,该并发控制系统中包括两个调用链,每个调用链可以处理一种业务请求,若服务节点E故障,控制节点可以通过分析统计数据确定经过服务节点A->服务节点B->服务节点C->服务节点E的业务请求在服务节点E处出现失败,还可以通过分析统计数据确定经过服务节点A->服务节点B->服务节点D->服务节点E的业务请求在服务节点E处出现失败,此时可以更为准确地确定服务节点E为并发数阈值不合理的目标服务节点,其中,每个业务请求中确定业务失败的服务节点的方法与上述实施例相同,在此不再赘述。
值得说明的是,对于某子服务以单服务节点形式部署的情况,当该服务节点整体故障(如服务节点断电导致整体故障)时,调用链无法继续完成处理业务请求的处理过程,控制节点获取的分析统计数据中仅能根据该故障服务节点的上级服务节点确定调用关系,但无法获取到该故障服务节点的分析统计数据,此时,控制节点也可以因无法获取该服务节点的分析统计数据确定该故障节点为目标服务节点,需要由维护人员进一步确认故障原因,并进行故障恢复。
方式二:可以在检测到业务请求在某个服务节点的处理时延超过预设阈值时,确定该服务节点的并发数阈值不合理。
具体地,控制节点可以根据分析统计数据中每个服务节点处理业务请求的时延是否超过预设阈值确定不合理的服务节点。其中,该预设阈值可以为根据经验设置的一个可以标识不合理服务节点的业务请求时延阈值,也可以为根据分析统计数据观察各服务节点的业务请求时延,从而确定的一个可以用于标识不合理服务节点的业务请求时延阈值。
可以理解,对于并发数阈值正常的服务节点来说,各服务节点的业务请求时延小于预设阈值,而一旦检测到某个业务请求在某个服务节点上的业务请求时延大于或等于预设阈值,则说明该服务节点可能发生故障(如网络故障),从而确定该服务节点为并发数阈值不合理的目标服务节点。
方式三:可以是在检测到业务请求在多个服务节点的时延超过预设阈值时,确定该多个服务节点的并发数阈值不合理。
具体地,控制节点也可以通过同一调用链中多个服务节点的时延超过预设阈值确定并发数阈值不合理的目标服务节点。
可选地,控制节点也可以是通过检测多个业务请求的时延来确定并发数阈值不合理的目标服务节点。可以理解,由于对于单业务请求来说,可能由于网络闪断或其他在可自我恢复故障(如提供服务的进程异常)导致处理业务请求的时延大于或等于预设阈值,故分析多个业务请求时延,将使得分析更为准确。
示例地,在本发明的一个可能的实施例中,对于图2所示的调用链系统来说,假设每个服务由一个服务节点部署,预设阈值为0.05s,若某个业务请求的处理过程需要经过服务节点A、服务节点B、服务节点E,而通过分析统计数据检测到通过服务节点A、服务节点B的业务请求时延为0.01s,而通过服务节点E的业务请求的处理时延为0.1s,服务节点E处理业务请求的时延大于预设阈值,此时可确定服务节点E为并发数阈值不合理的目标服务节点。
可选地,在本发明的一个可能的实施例中,该并发数阈值不合理的目标服务节点可以为并发数阈值初始设置不合理,例如并发数阈值初始设置过大,或并发数阈值初始设置过小。
可选地,在本发明的另一个可能的实施例中,该并发数阈值不合理的目标服务节点也可以为并发数阈值初始设置合理,但由于在并发控制系统运行的过程中,由控制节点对某个故障服务节点进行调整后,导致的故障服务节点的上级或下级服务节点出现并发数阈值不合理。
值得说明的是,控制节点将同时使用上述三种方式监控并发控制系统中是否存在并发数阈值不合理的目标服务节点,以在服务节点的并发数阈值初始设置不合理、服务节点出现故障,或者控制节点对某个服务节点的并发数阈值进行调整后导致其上级服务节点或下级服务节点的并发数阈值不合理的情况下,及时确定并发数阈值不合理的目标服务节点,并对该目标服务节点的并发数阈值进行调整,以保证并发控制系统的性能。
S403、控制节点获取目标服务节点的并发数阈值,以及目标服务节点的相邻服务节点的并发数阈值和权重信息。
其中,并发数阈值是指该服务节点在基于调用链的并发控制系统中能够被并发调用的最大值。所述权重信息用于标识所述相邻服务节点调用所述目标服务节点的并发数的比例关系,其中目标服务节点的相邻服务节点包括目标服务节点的上级服务节点和下级服务节点,那么,权重信息可以用于标识调用链中同时调用同一服务节点的下级服务节点之间并发数阈值的比例关系,或同时调用该服务节点的上级服务节点之间并发数阈值的比例关系。参见图3,对于服务节点A来说,存在2个下级服务节点,即服务节点B和服务节点C,假设服务节点B和服务节点C的并发数阈值比例为2∶3,且服务节点A的并发数阈值为100,则可以确定服务节点B和服务节点C的并发数阈值分别为40和60时,此时,服务节点A、服务节点B和服务节点C之间的调用关系满足彼此在业务请求处理时最优配比,服务节点间的资源可以得到充分利用,服务节点A的并发数阈值能够满足服务节点B和服务节点C在业务处理过程中最大处理能力。或者,权重信息也是指同时调用某个服务节点的多个上级服务节点之间的并发数阈值的比例关系,当某个服务节点的并发数阈值确定后,可以根据该权重信息确定该服务节点的上级服务节点的并发数阈值以及下级服务节点的并发数阈值,其并发数阈值确定情况与上述服务节点A存在服务节点B和服务节点C的处理过程相同,在此不再赘述。
值得说明的是,该权重信息可以由用户指定,也可设置为系统默认值。另外,权重信息是同一个服务节点的两个或两个以上服务节点的并发数阈值的比例关系,当某个服务节点的上级服务节点或下级服务节点仅有一个时,其权重信息为1,如图2中,服务节点B仅有一个下级服务节点D,则服务节点D的权重为1,此时,服务节点D的并发数阈值在等于服务节点B的并发数阈值时,服务节点D可以调用服务节点B的所有资源处理业务请求。
可选地,控制节点可以实时从各个服务节点获取各自的并发数阈值和权重信息,也可以周期性点获取各个服务节点的并发数阈值与权重信息,以便控制节点可以根据其获取的最新的并发数阈值和权重信息对服务节点的服务调用情况进行监控和调整。
具体地,可以由各服务节点直接将并发数阈值和权重信息发送给控制节点,例如,在各个服务节点上安装客户端代理模块,由客户端代理模块将各服务节点的并发数阈值和权重信息发送至控制节点。
S404、控制节点根据所述目标服务节点的并发数阈值、所述分析统计数据、以及所述目标服务节点的相邻服务节点的并发数阈值和权重信息确定目标服务节点更新后的并发数阈值。
具体地,控制节点在确定并发数阈值不合理的目标服务节点后,首先基于分析统计数据中每个服务节点和其它服务节点之间的调用关系分析得到并发控制系统中各服务节点之间的服务调用拓扑关系。然后控制节点再根据该目标服务节点的并发数阈值,该服务调用拓扑关系,以及S403中目标服务节点的相邻服务节点的并发数阈值和权重信息,确定目标服务节点更新后的并发数阈值,更新后的并发数阈值使得调用链中各服务节点调用时,在服务调用拓扑关系中,满足其上级服务节点和/或下级服务节点的调用需求,并且也不存在服务节点预留多余资源导致资源浪费的问题。
可选地,控制节点获取的分析统计数据中也可以包括服务调用拓扑关系。
具体地,该服务调用拓扑关系可以是由信息处理节点根据服务节点的日志来确定,然后发送给控制节点。也可以是由控制节点直接根据其所获取到的分析统计中每个服务节点和其他服务节点的调用关系确定的,使得处理方式更为灵活。
对于同一并发控制系统来说,其服务调用拓扑关系相对固定,控制节点可以在第一次获取到服务调用拓扑关系后,可以保存该服务调用拓扑关系,在接下来的并发数阈值调整过程中,以此服务调用拓扑关系为参考,对基于调用链的并发控制系统中服务节点的并发数阈值进行调整和控制,避免每次调整过程中均需要获取该服务调用拓扑关系所导致的资源浪费。
更进一步地,当调整完目标服务节点后,若并发控制系统中还存在其它并发数阈值不合理的目标服务节点,可以使用以下两种方式中的任意一种来实现对并发控制系统中其他服务节点的并发数阈值进行调整。
方式一:可继续使用步骤S402重新确定该目标服务节点的上级服务节点和/或下级服务节点为新的目标服务节点,并使用同样的方式对重新确定的新的目标服务节点的并发数阈值进行调整。重复该过程,以完成对整个并发控制系统中所有服务节点的并发数阈值的调整。
示例地,在本发明的一个可能的实施例中,当目标服务节点的当前并发数阈值设置过小时,例如,目标服务节点为初始设置并发阈值过小导致并发数阈值不合理。参见图2,若每个服务利用一个服务节点部署,且设置服务节点A的并发数阈值为50,服务节点B的并发数阈值为50,服务节点C的并发数阈值为50,且服务节点B和服务节点C的并发数阈值的比例关系是1∶1,此时,服务节点B和服务节点C的并发数阈值之和大于服务节点A的并发数阈值,则控制节点在获取各个服务节点的分析统计数据后,可以确定服务节点A为并发数阈值不合理的目标服务节点,若服务节点A可支持的最大并发数阈值大于或等于100,则控制节点直接将服务节点A的并发数阈值调整为100;若服务节点A可支持的最大并发数阈值为50,则控制节点分别将服务节点B和服务节点C的并发数阈值调整为25;此时完成对目标服务节点的并发数阈值的一次调整。若服务节点A的并发数阈值为100,服务节点B的并数阈值为50,服务节点C的并发数阈值为50,而服务节点D的并发数阈值为100,继续使用步骤S402的方式可以确定服务节点D为并发数阈值不合理的目标服务节点,此时,将根据服务节点D的上级服务节点B的并发数阈值50,以调整服务节点D的并发数阈值也为50,以使服务节点D与服务节点B的在图2所示的分布式服务调用关系中互相满足调用需求。若该并发控制系统中还存在其它并发数阈值不合理的目标服务节点,可继续使用同样的方式对其它服务节点的并发数阈值进行调整,直至所有服务节点在该分布式服务调用关系中与其它服务节点之间满足调用需求,并且也不存在服务节点预留多余资源导致资源浪费的问题。
示例地,在本发明的另一个可能的实施例中,当目标服务节点为并发数阈值设置过大时,例如,目标服务节点为初始设置并发阈值过大导致并发数阈值不合理。假设图2中服务节点A的并发数阈值为200,服务节点B和服务节点C的并发数阈值分别为50,服务节点B和服务节点C的并发数阈值的比例关系为1∶1,此时,服务节点B和服务节点C的并发数阈值之和为100,即服务节点B和服务节点C最大仅能处理服务节点A同时下发的100个服务调用关系,控制节点在获取各个服务节点的分析统计数据后,可以确定服务节点A的并发数阈值设置过大,此时,控制节点根据服务节点A的并发数阈值、服务节点A的下级服务节点的并发数阈值和权重信息,将服务节点A的并发数阈值调整为100。同样地,可继续使用同样的方式对该并发控制系统的其它服务节点的并发数阈值进行调整。
值得说明的是,当服务由多个服务节点组成的集群部署,且其中一个服务节点发生故障时,提供该服务的多个服务节点的并发数阈值之和发生改变,从而导致无法与该服务的上级服务节点和/或下级服务节点的并发数阈值匹配,影响调用链系统的整体性能,首先由S402确定出来该目标服务节点,然后再根据分析统计数据得到该目标服务节点上可同时并发运行的最大业务请求个数,即可确定该最大业务请求个数为该目标服务节点更新后的并发数阈值。
示例地,在本发明的又一个可能的实施例中,参见图3,服务E和服务F采用集群形式部署,服务节点C和服务节点D均会调用部署服务E的多个服务节点进行业务处理,若当前时刻服务节点C的并发数阈值为100,服务节点D的并发数阈值为50,服务节点C和服务节点D的并发数阈值的比例关系为2∶1,此时,部署服务E的服务集群的并发数阈值之和应为150,服务节点E1、服务节点E2、服务节点E3的并发数阈值均为50,此时,部署服务E的集群能够同时处理来自服务节点C和服务节点D的并发数阈值之和为150的处理请求。当部署服务E的一个服务节点故障时,部署服务E的集群的并发数阈值之和变为100,若服务节点C和服务节点D仍按照当前时刻配置的并发数阈值执行业务请求的服务调用关系,会导致其中部分业务请求处理失败,此时,控制节点可以根据分析统计数据确定故障节点为不合理的目标服务节点,并直接根据分析统计数据确定该目标服务节点上可同时并发运行的最大业务请求个数为100,所以可调整部署服务E的服务节点的更新后的并发数阈值之和为100。在完成对部署服务E的服务节点的并发数阈值的调整后,此时部署服务E的上级服务节点和下级服务节点的并发数阈值将与部署服务E的服务节点的并发数阈值不匹配,故可继续使用步骤S402分别确定部署服务E的服务节点的上级服务节点和/或下级服务节点为并发数阈值不合理的目标服务节点,例如,可重新确定服务节点C为并发数阈值不合理的目标服务节点,然后再根据服务节点C的下级服务节点E的并发数阈值以及权重数据调整服务节点C更新后的并发数阈值为50,以使得服务节点E能满足其上级服务节点的调用需求。重复上述步骤,可依次对并发控制系统中其它服务节点的并发数阈值进行调整,直至所有服务节点在该分布式服务调用关系中与其它服务节点之间满足调用需求,并且也不存在服务节点预留多余资源导致资源浪费的问题。
方式二:也可以在调整完目标服务节点后,再分别对该目标服务节点的上级服务节点和/或下级服务节点进行调整,以完成对并发控制系统中所有服务节点的并发数阈值的调整。具体调整方式如下:
控制节点对并发控制系统中服务节点的并发数阈值调整过程,可以是通过一次调整任务,先确认一个目标服务节点后,然后依次调整目标服务节点的上级服务节点和/或下级服务节点的并发数阈值,最后再将更新后的并发数阈值发送给需要调整的服务节点。也可以是每次调整任务仅确认一个目标服务节点,调整完该目标服务节点的并发数阈值后,再利用相同的方法,对该目标服务节点的上级服务节点或下级服务节点的并发数阈值进行调整。
对于目标服务节点的上级服务节点来说,在控制节点确定目标服务节点更新后的并发数阈值后,控制节点再根据服务调用拓扑关系、所述目标服务节点更新后的并发数阈值、以及所述目标服务节点的相邻服务节点的并发数阈值和权重信息对所述目标服务节点的上级服务节点进行调整以得到所述上级服务节点更新后的并发数阈值。
值得说明的是,利用上述方式对目标服务节点的上级服务节点和/或下级服务节点的并发数阈值进行调整时的调整原则,与对目标服务节点的并发数阈值进行调整时的调整原则相同,从而当对目标服务节点的并发数阈值进行调整,并依次对目标服务节点的上级服务节点和/下级服务节点的并发数阈值进行调整后,将使得并发控制系统中所有服务节点在该分布式服务调用关系中与其它服务节点之间满足调用需求,并且也不存在服务节点预留多余资源导致资源浪费的问题。
示例地,在本发明的一个可能的实施例中,参见图2,若每个服务利用一个服务节点部署,且设置服务节点A的并发数阈值为200,服务节点B的并发数阈值为100,服务节点C的并发数阈值为50,服务节点E的并发数阈值为50,服务节点B和服务节点C的并发数阈值的比例关系为1∶1,且服务节点最大可支持120的并发数阈值,此时,服务节点C无法满足服务节点A的调用需求,所以首先可确定服务节点C为并发数阈值不合理的目标服务节点,控制节点根据服务节点C的并发数阈值、上级服务节点A的并发数阈值以及权重信息,确定服务节点C更新后的并发数阈值为100,接下来再根据图2所示的服务调用拓扑关系,服务节点C的更新后的并发数阈值100,以及服务节点C的下级服务节点E的并发数阈值和权重信息,对服务节点E的并发数阈值进行调整,得到服务节点E的更新后的并发数阈值为100,以满足服务节点C的服务调用关系。
控制节点在确定并发数阈值不合理的目标服务节点后,利用方式二依次对该目标服务节点的上级服务节点以及下级服务节点进行调整时,待调整的服务节点包括以下情况中的任意一种:
情况一:并发数阈值不合理的目标服务节点的上级服务节点和下级服务节点。
例如,如图2所示,若服务节点C为并发数阈值不合理的目标服务节点,控制节点在调整服务节点C的并发数阈值时,会影响其下级服务节点处理业务请求的能力,即服务节点E的并发数阈值也需要进行调整。
其中,并发数阈值不合理的目标服务节点的上级服务节点和下级服务节点包括与并发数阈值不合理的目标服务节点存在调用关系且相邻的上级服务节点和下级服务节点、与并发数阈值不合理的目标服务节点存在调用关系且非相邻的上级服务节点和下级服务节点。
例如,如图2所示,假设每个服务由一个服务节点部署,若服务节点E是并发数阈值不合理的目标服务节点,控制节点确定服务节点C和服务节点F需要调整并发数阈值后,服务节点C和服务节点F更新后的并发数阈值导致服务节点A的当前并发数阈值不合理,此时,控制节点还需要调整服务节点A的并发数阈值。
情况二:并发数阈值不合理的目标服务节点的上级服务节点或下级服务节点。
控制节点确定目标服务节点后,根据目标服务节点的并发数阈值、目标服务节点的上级服务节点或下级服务节点的并发数阈值和权重信息,确定目标服务节点的并发数阈值不需要调整,例如,目标服务节点最大可支持的并发调用个数小于其上级服务节点或下级服务节点的并发数阈值,需要对目标服务节点的上级服务节点或下级服务节点的并发数阈值进行调整,以保证整个并发控制系统的性能。
可选地,控制节点在调整并发数阈值的过程中,也可以通过关闭服务节点的方式调整调用链系统的并发数阈值,以此降低资源损耗。
示例地,如图3所示,若控制节点在调整并发数阈值的过程中,若部署服务E的服务节点的并发数阈值需要从150调整到100,而服务E由服务节点E1、服务节点E2以及服务节点E3共同提供,各服务节点分别提供50并发数,所以此时可以关闭其中一个服务节点,例如,可以关闭服务节点E1,从而降低了服务节点E1的资源损耗。
S405、所述控制节点向所述目标服务节点发送并发数阈值调整请求,并发数阈值调整请求包括更新后的并发数阈值。
可选地,在本发明的一个可能的实施例中,当控制节点再次将目标服务节点的上级服务节点或下级服务节点确定为新的目标服务节点后,控制节点在确定完该新的目标服务节点的更新后的并发数阈值后,向该新的目标服务节点发送并发数阈值调整请求,该并发数阈值调整请求中包括该新的目标服务节点的更新后的并发数阈值,重复该步骤,从而实现对并发控制系统中所有服务节点的并发数阈值的更新。
可选地,在本发明的另一个可能的实施例中,当控制节点完成对目标服务节点的并发数阈值的调整后,再依次对该目标服务节点的上级服务节点和/或下级服务节点的并发数阈值的调整,以得到该目标服务节点的上级服务节点和/或下级服务节点的更新后的并发数阈值,然后控制节点再向该目标节点的上级服务节点和/或下级服务节点发送并发数阈值调整请求,该并发数阈值调整请求中包括与上级服务节点和/或下级服务节点对应的更新后的并发数阈值,将使各服务节点能对自身的并发数阈值进行调整,从而最终实现对并发控制系统中所有服务节点的并发数阈值的更新。可以理解,通过将更新后的并发数阈值发送至各目标服务节点,使各目标服务节点可以根据更新后的并发数阈值进行并发数阈值调整,使得各服务节点之间的并发数阈值满足调用关系。
通过上述内容的描述,控制节点获取各个服务节点的分析统计数据并根据分析统计数据确定目标服务节点,然后控制节点再获取目标服务节点的上级服务节点或下级服务节点的并发数阈值和权重信息后,根据目标服务节点的并发数阈值、分析统计数据,以及上级服务节点或下级服务节点的并发数阈值和权重信息确定目标服务节点更新后的并发数阈值;最后控制节点再向目标服务节点发送携带更新后并发数阈值的并发数阈值调整请求,由于控制节点可以周期性或实时的通过分析统计数据确定并发数阈值不合理的目标节点,并对其并发数阈值进行调整,因此,控制节点可以动态调整服务节点的并发数阈值,使得更新后的并发数阈值能满足并发能力调用关系,以此解决现有技术中基于调用链的并发控制系统无法及时感知服务节点故障或并发数阈值不合理所导致的并发控制系统处理性能下降的问题,保障并发控制系统的稳定与可靠性,降低业务请求处理的时延,提升业务请求处理的整体性能。
下面以具体的示例来说明控制节点对各服务节点的并发数阈值进行调整的流程,详述如下。
在本发明的一个可能的实施例中,若信息处理节点实时采集各服务节点所记录的日志,并通过日志确定分析统计数据,然后再将该分析统计数据发送给控制节点。控制节点根据各服务节点的并发数阈值、权重数据以及分析统计数据确定并发控制系统的服务调用拓扑关系如图5所示,图5示出了本发明实施例提供的一种基于调用链的并发控制系统的服务调用拓扑关系示意图。其中,服务A由服务节点A提供;服务B由服务节点B提供;服务E由服务节点E提供;服务F由服务节点F提供;服务G以集群形式部署,包括服务节点G1和服务节点G2;服务H以集群形式部署,包括服务节点H1和服务节点H2。初始设置服务节点A的并发数阈值为80;服务节点B的并发数阈值为40;服务节点E的并发数阈值为80;服务节点F的并发数阈值为40;部署服务G的集群的并发数阈值之和为120,其中,服务节点G1和服务节点G2的并发数阈值分别为60;部署服务H的集群的并发数阈值之和为120,其中,服务节点H1和服务节点H2的并发数阈值分别为60,此时各服务节点之间调用时,在图5所示的服务调用拓扑关系中满足调用链中各个服务节点的调用需求。
在本发明的一个可能的实施例中,若控制节点在某时刻获取到的分析统计数据中,确定服务节点G1整体故障时,此时,G服务仅有服务节点G2提供,即G服务当前并发处理能力变为60,需要基于服务G对其上级服务节点和下级服务节点的并发数阈值进行调整。控制节点根据服务调用拓扑关系可以得出涉及服务节点G1的上行调用链有2条,分别为服务节点E->服务节点A和服务节点F->服务节点B,由于服务节点E和服务节点F的并发数阈值之和为120,已经超过了服务G(服务节点G2)的能力,此时,根据服务节点E和服务节点F的并发数阈值的比例关系为2∶1,可以算出服务节点E和服务节点F的并发数阈值应该分别调整成40和20。服务节点E的上级服务节点A的并发数阈值为80,大于服务节点E的并发数阈值40,所以也要调整,由于服务节点E只有一个上级服务节点,权重为1,所以服务节点A的并发数阈值保持和服务节点E的并发数阈值一致,利用同样的方式可将服务节点B的并发数阈值调整为20,完成上级服务节点的并发数阈值调整;对于服务G来说有一个下行调用链的服务H,服务H采用集群形式部署,其并发数阈值之和为120,可以将服务H的并发数阈值之和调整为60,具体实施时,可以分别将服务节点H1和服务节点H2的并发数阈值调整为30,或者关闭其中一个提供G服务的服务节点,如关闭服务节点H2,由此节省服务节点资源。即完成服务节点G的下级服务节点的并发数调整。
在本发明的另一个可能的实施例中,若控制节点检测到服务节点A为并发数阈值不合理的目标节点(如并发数阈值设置过小),由于服务节点A不存在上级服务节点,所以此时只需要对服务节点A的下级服务节点的并发数阈值进行调整,具体调整方式与上述示例相同。
在本发明的另一个可能的实施例中,若控制节点检测到服务节点H为并发数阈值不合理的目标节点(如存在网络闪断),由于服务节点H不存在下级调用服务节点,所以此时只需要对H的上级调用服务节点的并发数阈值进行调整,具体调整方式与上述示例相同。
值得说明的是,对于任一服务调用拓扑关系中的任意一个服务节点的并发数阈值设置不合理时,均可以采用上述调整方式对其它服务节点的并发数阈值进行调整,总的原则是使得调整后得到的各服务节点的新的并发数阈值能满足该服务节点的上级服务节点和下级服务节点的调用能力,即新的并发数阈值使得各服务节点的并发调用能力匹配,并且不会空闲多余的并发数调用能力。对于服务节点故障以及并发数阈值设置不合理的场景下,上述调整方式均适合。
更进一步地,当多个服务节点的并发数阈值设置不合理时,可以利用上述调整方式依次分别对单个服务节点进行调整以完成整个调整过程。
可以理解,通过上述方式,即可实现对服务节点的并发数阈值进行调整,从而使得更新后的并发数阈值能满足调用关系,保障调用链系统的性能稳定。
需要说明,本发明实施例中所提及的基于调用链的并发控制方法不限于上述实施例中所提及的服务节点故障以及服务节点的处理时延超过阈值的场景,对于其它服务节点的并发数阈值不合理的场景导致的各服务节点的调用能力不匹配的场景均可适用于本发明实施例所提及的方案,例如,对于采用集群形式部署的服务,通过扩容的方式增加部署该服务的服务节点所导致的提供该服务集群的并发数阈值之和过大,以及通过减容的方式减少部署该服务的服务节点所导致的提供该服务的集群的并发数阈值之和过小的场景,均可适用于本发明实施例中所提及的相应调整方案。
上文中结合图1至图5,详细描述了根据本发明实施例所提供的一种基于调用链的并发控制的方法,下面将结合图6至图7,描述根据本发明实施例所提供的基于调用链的并发控制的装置和控制节点。
参见图6,图6是本发明实施例提供的一种基于调用链的并发控制的装置600示意图,该装置600包括获取模块610、处理模块620和发送模块630;
所述获取模块610,用于获取所述多个服务节点中每个服务节点的分析统计数据;
所述处理模块620,用于根据所述多个服务节点中每个服务节点的分析统计数据确定所述多个服务节点中并发数阈值不合理的目标服务节点;
所述获取模块610,还用于获取所述目标服务节点的并发数阈值,以及所述目标服务节点的相邻服务节点的并发数阈值和权重信息,其中,所述并发数阈值用于标识服务节点在所述并发控制系统中能够被并发调用的最大值;所述权重信息用于标识所述相邻服务节点调用所述目标服务节点的并发数的比例关系;
所述处理模块620,还用于根据所述目标服务节点的并发数阈值、所述分析统计数据、以及所述目标服务节点的相邻服务节点的并发数阈值和权重信息确定所述目标服务节点更新后的并发数阈值;
所述发送模块630,用于向所述目标服务节点发送并发数阈值调整请求,所述并发数阈值调整请求包括所述更新后的并发数阈值。
应理解的是,本发明实施例的装置600中各个模块均可以通过专用集成电路(Application Specific Integrated Circuit,ASIC)实现,或可编程逻辑器件(Programmable Logic Device,PLD)实现,上述PLD可以是复杂程序逻辑器件(ComplexProgrammable Logic Device,CPLD),现场可编程门阵列(Field-Programmable GateArray,FPGA),通用阵列逻辑(Generic Array Logic,GAL)或其任意组合。也可以通过软件实现图4至图5所示的基于调用链的并发控制的方法时,装置600及其各个模块也可以为软件模块。
可选地,所述分析统计数据包括所述服务节点处理业务请求的处理结果,所述目标服务节点为所述处理结果为处理业务请求失败的服务节点。
可选地,所述分析统计数据包括所述服务节点处理业务请求的时延,所述目标服务节点为所述处理业务请求的时延大于或等于预设阈值的服务节点。
可选地,所述分析统计数据包括所述服务节点处理和其他服务节点之间的调用关系;所述获取模块610,还用于获取所述并发控制系统中服务调用拓扑关系;
所述处理模块620,还用于根据所述目标服务节点的并发数阈值,所述服务调用拓扑关系、以及所述目标服务节点的相邻服务节点的并发数阈值和权重信息对所述目标服务节点进行调整以得到更新后的并发数阈值。
可选地,所述获取模块610获取所述并发控制系统中服务调用拓扑关系,包括基于所述分析统计数据中每个服务节点和其他服务节点之间的调用关系获得所述并发控制系统的服务调用拓扑关系。
可选地,所述处理模块620,还用于根据服务调用拓扑关系、所述目标服务节点更新后的并发数阈值、以及所述相邻服务节点的并发数阈值和权重信息对所述目标服务节点的相邻服务节点进行调整以得到所述目标服务节点的相邻服务节点更新后的并发数阈值;
所述发送模块630,还用于向所述目标服务节点的相邻服务节点发送所述目标服务节点的相邻服务节点更新后的并发数阈值。
通过上述内容的描述,装置600获取各个服务节点的分析统计数据并根据分析统计数据确定目标服务节点,再获取目标服务节点相邻的上级服务节点或下级服务节点的并发数阈值和权重信息后,根据目标服务节点的并发数阈值、分析统计数据,以及上级服务节点或下级服务节点的并发数阈值和权重信息确定目标服务节点更新后的并发数阈值;再向目标服务节点发送携带更新后并发数阈值的并发数阈值调整请求。装置600通过动态调整服务节点的并发数阈值,使得更新后的并发数阈值能满足并发能力调用关系,以此解决现有技术中基于调用链的并发控制系统无法及时感知服务节点故障或并发数阈值不合理所导致的并发控制系统处理性能下降的问题,保障并发控制系统的稳定与可靠性,降低业务请求处理的时延,提升业务请求处理过程中的整体性能。
根据本发明实施例的装置600可对应于执行本发明实施例中描述的方法,并且装置600中的各个单元的上述和其它操作和/或功能分别为了实现图4所述方法中控制节点执行的相应流程,为了简洁,在此不再赘述。
值得说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
参见图7,图7是本发明实施例提供的另一种控制节点700的结构示意图,如图7所示,该控制节点700包括:处理器702、通信接口703、存储器701和总线704。其中,通信接口703、处理器702以及存储器701可以通过总线704相互连接并完成相互间的通信;存储器701用于存储计算机执行指令,控制节点700运行时,处理器702执行所述存储器701中的计算机执行指令以利用控制节点700中的硬件资源执行以下操作:
获取所述多个服务节点中每个服务节点的分析统计数据;
根据所述多个服务节点中每个服务节点的分析统计数据确定所述多个服务节点中并发数阈值不合理的目标服务节点;
获取所述目标服务节点的并发数阈值,以及所述目标服务节点的相邻服务节点的并发数阈值和权重信息,其中,所述并发数阈值用于标识服务节点在所述并发控制系统中能够被并发调用的最大值;所述权重信息用于标识所述相邻服务节点调用所述目标服务节点的并发数的比例关系;
根据所述目标服务节点的并发数阈值、所述分析统计数据、以及所述目标服务节点的相邻服务节点的并发数阈值和权重信息确定所述目标服务节点更新后的并发数阈值;
向所述目标服务节点发送并发数阈值调整请求,所述并发数阈值调整请求包括所述更新后的并发数阈值。
应理解,在本发明实施例中,该处理器702可以是CPU,该处理器702还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器701可以包括只读存储器和随机存取存储器,并向处理器702提供指令和数据。存储器701的一部分还可以包括非易失性随机存取存储器。例如,存储器701还可以存储设备类型的信息。
该总线704除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线504。
应理解,根据本发明实施例的控制节点700可对应于本发明实施例中图1所示的并发控制系统中的控制节点120,以及图6所示的装置600,并可以对应于执行根据本发明实施例的图4中的控制节点,并且控制节点700中的各个模块的上述和其它操作和/或功能分别为了实现图4至图5中的各个方法的相应流程,为了简洁,在此不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk,SSD)等。
值得说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (14)

1.一种基于调用链的并发控制的方法,其特征在于,所述方法应用于基于调用链的并发控制系统,所述并发控制系统包括控制节点、多个服务节点,所述多个服务节点用于部署应用服务,所述方法包括:
所述控制节点获取所述多个服务节点中每个服务节点的分析统计数据;
所述控制节点根据所述多个服务节点中每个服务节点的分析统计数据确定所述多个服务节点中并发数阈值不合理的目标服务节点;
所述控制节点获取所述目标服务节点的并发数阈值,以及所述目标服务节点的相邻服务节点的并发数阈值和权重信息,其中,所述并发数阈值用于标识服务节点在所述并发控制系统中能够被并发调用的最大值;所述权重信息用于标识所述相邻服务节点调用所述目标服务节点的并发数的比例关系;
所述控制节点根据所述目标服务节点的并发数阈值、所述分析统计数据、以及所述目标服务节点的相邻服务节点的并发数阈值和权重信息确定所述目标服务节点更新后的并发数阈值;
所述控制节点向所述目标服务节点发送并发数阈值调整请求,所述并发数阈值调整请求包括所述更新后的并发数阈值。
2.根据权利要求1所述的方法,其特征在于,所述分析统计数据包括所述服务节点处理业务请求的处理结果,所述目标服务节点为所述处理结果为处理业务请求失败的服务节点。
3.根据权利要求1所述的方法,其特征在于,所述分析统计数据包括所述服务节点处理业务请求的时延,所述目标服务节点为所述处理业务请求的时延大于或等于预设阈值的服务节点。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述分析统计数据包括所述服务节点处理所述服务节点和其他服务节点之间的调用关系,则所述控制节点根据所述目标服务节点的并发数阈值、所述分析统计数据、以及所述目标服务节点的相邻服务节点的并发数阈值和所述权重信息确定所述目标服务节点更新后的并发数阈值,包括:
所述控制节点获取所述并发控制系统中服务调用拓扑关系;
所述控制节点根据所述目标服务节点的并发数阈值,所述服务调用拓扑关系、以及所述目标服务节点的相邻服务节点的并发数阈值和权重信息对所述目标服务节点进行调整以得到更新后的并发数阈值。
5.根据权利要求4所述的方法,其特征在于,所述控制节点获取所述并发控制系统中服务调用拓扑关系,包括:
所述控制节点根据所述多个服务节点中每个服务节点的分析统计数据中所述服务节点和其他服务节点之间的调用关系获得所述并发控制系统的服务调用拓扑关系。
6.根据权利要求1至3中任一所述方法,其特征在于,所述方法还包括:所述控制节点根据服务调用拓扑关系、所述目标服务节点更新后的并发数阈值、以及所述相邻服务节点的并发数阈值和权重信息对所述目标服务节点的相邻服务节点进行调整以得到所述目标服务节点的相邻服务节点更新后的并发数阈值;
所述控制节点向所述目标服务节点的相邻服务节点发送所述目标服务节点的相邻服务节点更新后的并发数阈值。
7.一种基于调用链的并发控制的装置,其特征在于,所述装置包括获取模块、处理模块和发送模块:
所述获取模块,用于获取多个服务节点中每个服务节点的分析统计数据;
所述处理模块,用于根据所述多个服务节点中每个服务节点的分析统计数据确定所述服务节点中并发数阈值不合理的目标服务节点;
所述获取模块,还用于获取所述目标服务节点的并发数阈值,以及所述目标服务节点的相邻服务节点的并发数阈值和权重信息,所述并发数阈值用于标识服务节点在并发控制系统中能够被并发调用的最大值;所述权重信息用于标识所述相邻服务节点调用所述目标服务节点的并发数的比例关系;
所述处理模块,还用于根据所述目标服务节点的并发数阈值,所述分析统计数据、以及所述目标服务节点的相邻服务节点的并发数阈值和权重信息确定所述目标服务节点更新后的并发数阈值;
所述发送模块,用于向所述目标服务节点发送并发数阈值调整请求,所述并发数阈值调整请求包括所述更新后的并发数阈值。
8.根据权利要求7所述的装置,其特征在于,所述分析统计数据包括所述服务节点处理业务请求的处理结果,所述目标服务节点为所述处理结果为处理业务请求失败的服务节点。
9.根据权利要求7所述的装置,其特征在于,所述分析统计数据包括所述服务节点处理业务请求的时延,所述目标服务节点为所述处理业务请求的时延大于或等于预设阈值的服务节点。
10.根据权利要求7至9任一项所述的装置,其特征在于,所述分析统计数据包括所述服务节点处理所述服务节点和其他服务节点之间的调用关系;
所述获取模块,还用于获取所述并发控制系统中服务调用拓扑关系;
所述处理模块,还用于根据所述目标服务节点的并发数阈值,所述服务调用拓扑关系、以及所述目标服务节点的相邻级服务节点的并发数阈值和权重信息对所述目标服务节点进行调整以得到更新后的并发数阈值。
11.根据权利要求10所述的装置,其特征在于,所述获取模块获取所述并发控制系统中服务调用拓扑关系,包括:
根据所述多个服务节点中每个服务节点的分析统计数据中所述服务节点和其他服务节点之间的调用关系获得所述并发控制系统的服务调用拓扑关系。
12.根据权利要求7至9任一项所述的装置,其特征在于,
所述处理模块,还用于根据服务调用拓扑关系、所述目标服务节点更新后的并发数阈值、以及所述相邻服务节点的并发数阈值和权重信息对所述目标服务节点的相邻服务节点进行调整以得到所述目标服务节点的相邻服务节点更新后的并发数阈值;
所述发送模块,还用于向所述目标服务节点的相邻服务节点发送所述目标服务节点的相邻服务节点更新后的并发数阈值。
13.一种控制节点,其特征在于,所述控制节点包括处理器、存储器、通信接口、总线,所述处理器、存储器和通信接口之间通过总线连接并完成相互间的通信,所述存储器中用于存储计算机执行指令,所述控制节点运行时,所述处理器执行所述存储器中的计算机执行指令以利用所述控制节点中的硬件资源执行权利要求1至6中任一所述的方法。
14.一种计算机可读存储介质,所述计算机可读存储介质中包括指令,当其在计算机上运行时,使得计算机执行权利要求1至6中任一所述的方法。
CN201780000205.1A 2017-01-26 2017-01-26 一种基于调用链的并发控制的方法、装置及控制节点 Active CN108633311B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/072781 WO2018137254A1 (zh) 2017-01-26 2017-01-26 一种基于调用链的并发控制的方法、装置及控制节点

Publications (2)

Publication Number Publication Date
CN108633311A CN108633311A (zh) 2018-10-09
CN108633311B true CN108633311B (zh) 2021-12-21

Family

ID=62978930

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780000205.1A Active CN108633311B (zh) 2017-01-26 2017-01-26 一种基于调用链的并发控制的方法、装置及控制节点

Country Status (4)

Country Link
US (1) US10873622B2 (zh)
EP (1) EP3564816A4 (zh)
CN (1) CN108633311B (zh)
WO (1) WO2018137254A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106656536B (zh) * 2015-11-03 2020-02-18 阿里巴巴集团控股有限公司 一种用于处理服务调用信息的方法与设备
US10984412B2 (en) * 2018-09-20 2021-04-20 Coinbase, Inc. System and method for management of cryptocurrency systems
CN110727518B (zh) * 2019-10-14 2022-05-27 北京奇艺世纪科技有限公司 一种数据处理方法及相关设备
CN110809062B (zh) * 2019-11-14 2022-03-25 思必驰科技股份有限公司 公有云语音识别资源调用控制方法和装置
CN111124731A (zh) * 2019-12-20 2020-05-08 浪潮电子信息产业股份有限公司 一种文件系统异常监测方法、装置、设备、介质
CN111343240B (zh) * 2020-02-12 2022-08-16 北京字节跳动网络技术有限公司 一种服务请求的处理方法、装置、电子设备及存储介质
CN111415261B (zh) * 2020-03-27 2023-10-24 中国建设银行股份有限公司 银行系统的流控阈值动态更新的控制方法、系统和装置
CN112181498B (zh) * 2020-10-09 2024-01-30 中国工商银行股份有限公司 并发控制方法、装置和设备
CN112866055A (zh) * 2021-01-05 2021-05-28 广州品唯软件有限公司 业务流量评估方法、装置、计算机设备和存储介质
CN112835717A (zh) * 2021-02-05 2021-05-25 远光软件股份有限公司 一种用于集群的集成应用处理方法和装置
CN113315718B (zh) * 2021-03-31 2023-11-14 阿里巴巴新加坡控股有限公司 自适应限流的系统、方法和装置
CN113590261B (zh) * 2021-06-30 2022-05-06 济南浪潮数据技术有限公司 一种分布式服务的部署方法及系统
CN113760652B (zh) * 2021-08-13 2023-12-26 济南浪潮数据技术有限公司 基于应用的全链路监控的方法、系统、设备和存储介质
CN116016524B (zh) * 2023-03-24 2023-07-07 湖南智芯微科技有限公司 一种应用于机动式指挥平台的数据处理方法及装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9152464B2 (en) * 2010-09-03 2015-10-06 Ianywhere Solutions, Inc. Adjusting a server multiprogramming level based on collected throughput values
CN103379040B (zh) * 2012-04-24 2016-08-31 阿里巴巴集团控股有限公司 一种高并发系统中控制并发数的装置和方法
CN102681889B (zh) * 2012-04-27 2015-01-07 电子科技大学 一种云计算开放平台的调度方法
US8869148B2 (en) * 2012-09-21 2014-10-21 International Business Machines Corporation Concurrency identification for processing of multistage workflows
US9329899B2 (en) * 2013-06-24 2016-05-03 Sap Se Parallel execution of parsed query based on a concurrency level corresponding to an average number of available worker threads
CN104090823A (zh) * 2014-06-09 2014-10-08 中国建设银行股份有限公司 一种用于计算机系统的流量控制方法和装置
US9979674B1 (en) * 2014-07-08 2018-05-22 Avi Networks Capacity-based server selection
US9760406B2 (en) * 2014-09-02 2017-09-12 Ab Initio Technology Llc Controlling data processing tasks
CN104850431B (zh) * 2015-04-29 2016-08-17 努比亚技术有限公司 基于fota升级的稳定处理方法和装置
CN104932898B (zh) * 2015-06-30 2018-03-23 东北大学 一种基于改进多目标粒子群优化算法的待增组件选择方法
CN106250199B (zh) * 2016-07-26 2019-06-21 北京北森云计算股份有限公司 一种多语言云编译的动态微服务调用方法及装置
US10659371B1 (en) * 2017-12-11 2020-05-19 Amazon Technologies, Inc. Managing throttling limits in a distributed system
US10817497B2 (en) * 2018-01-29 2020-10-27 Salesforce.Com, Inc. Migration flow control
US20200092395A1 (en) * 2018-09-19 2020-03-19 International Business Machines Corporation Overload management of a transaction processing server

Also Published As

Publication number Publication date
WO2018137254A1 (zh) 2018-08-02
EP3564816A4 (en) 2019-11-20
US10873622B2 (en) 2020-12-22
CN108633311A (zh) 2018-10-09
US20190349423A1 (en) 2019-11-14
EP3564816A1 (en) 2019-11-06

Similar Documents

Publication Publication Date Title
CN108633311B (zh) 一种基于调用链的并发控制的方法、装置及控制节点
US11159450B2 (en) Nonintrusive dynamically-scalable network load generation
US10601643B2 (en) Troubleshooting method and apparatus using key performance indicator information
US7849178B2 (en) Grid computing implementation
US20160224277A1 (en) Monitoring storage cluster elements
CN111818159B (zh) 数据处理节点的管理方法、装置、设备及存储介质
JP2014197266A (ja) 情報処理システム,情報処理装置,情報処理装置の制御プログラム,及び情報処理システムの制御方法
CN103200036A (zh) 一种电力系统云计算平台的自动化配置方法
EP3956771B1 (en) Timeout mode for storage devices
CN109873714B (zh) 云计算节点配置更新方法及终端设备
US11695856B2 (en) Scheduling solution configuration method and apparatus, computer readable storage medium thereof, and computer device
CN115297124A (zh) 一种系统运维管理方法、装置及电子设备
CN110535714B (zh) 一种仲裁方法及相关装置
CN113872997B (zh) 基于容器集群服务的容器组pod重建方法及相关设备
CN112073499A (zh) 一种多机型云物理服务器的动态服务方法
CN102546652B (zh) 一种服务器负载平衡系统及方法
CN115686368A (zh) 区块链网络的节点的存储扩容的方法、系统、装置和介质
CN114328036A (zh) 一种硬件故障检测方法、系统及相关设备
CN107547257B (zh) 一种服务器集群实现方法及装置
CN115150253B (zh) 一种故障根因确定方法、装置及电子设备
CN112491599B (zh) 一种网络服务对象的部署方法及装置
US11789800B2 (en) Degraded availability zone remediation for multi-availability zone clusters of host computers
US20230105676A1 (en) Effectuate state change in a hierarchy of resources in an sddc
CN110896407B (zh) 一种nfvo组件配置管理、请求转发方法和请求处理装置
CN117251504A (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