CN111767142B - 服务节点的限流阈值设置方法和服务端设备 - Google Patents

服务节点的限流阈值设置方法和服务端设备 Download PDF

Info

Publication number
CN111767142B
CN111767142B CN202010578988.5A CN202010578988A CN111767142B CN 111767142 B CN111767142 B CN 111767142B CN 202010578988 A CN202010578988 A CN 202010578988A CN 111767142 B CN111767142 B CN 111767142B
Authority
CN
China
Prior art keywords
service
current
node
service node
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
CN202010578988.5A
Other languages
English (en)
Other versions
CN111767142A (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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202010578988.5A priority Critical patent/CN111767142B/zh
Publication of CN111767142A publication Critical patent/CN111767142A/zh
Application granted granted Critical
Publication of CN111767142B publication Critical patent/CN111767142B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/506Constraint
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本申请提供了一种服务节点的限流阈值设置方法和服务端设备,其中,该方法包括:获取限流指标配置文件,其中,所述限流指标配置文件中至少包括业务的优先级;根据所述限流指标配置文件为服务集群中各服务节点生成各个服务对应的限流阈值;将生成的限流阈值推送到各个服务节点。通过上述方案解决了现有的限流阈值设定过程中所存在的不考虑业务本身优先级所导致的设置不合理的问题,达到了合理设置限流阈值,从而达到对***资源的最优配置的技术效果。

Description

服务节点的限流阈值设置方法和服务端设备
技术领域
本申请属于互联网技术领域,尤其涉及一种服务节点的限流阈值设置方法和服务端设备。
背景技术
随着互联网用户越来越多,一般需要通过流量控制来保证***接收到的请求量在正常的范围内。由于任何***的吞吐量都有上限,因此必须设置合理的限定值,以避免流量洪峰将导致***崩溃,从而保证***可以在可控的负载下平稳运行。
目前大部分的互联网应用都有自己的限流组件,其中比较常用的有计数器算法、漏桶算法、令牌桶算法等,每个算法均有其应用场景。针对这些算法,限流阈值的设定一般都是依靠经验积累或者是通过服务器压测设置的。
然后有些场景(例如金融业务)中,数据处理量大,需要调用的服务比较多,业务之间的调用情况和调用需求也不同的,如果按照固定的阈值的设定,或者按照经验设置阈值,都无法保证***的稳定,也无法使得***资源达到最优配置的目的。
针对如何合理设置限流阈值的问题,目前尚未提出有效的解决方案。
发明内容
本申请目的在于提供一种服务节点的限流阈值设置方法和服务端设备,可以实现对限流阈值的合理设定,从而达到对***资源的最优配置。
本申请提供一种服务节点的限流阈值设置方法和服务端设备是这样实现的:
一种服务节点的限流阈值设置方法,所述方法包括:
获取限流指标配置文件,其中,所述限流指标配置文件中至少包括业务的优先级;
根据所述限流指标配置文件为服务集群中各服务节点生成各个服务对应的限流阈值;
将生成的限流阈值推送到各个服务节点。
在一个实施方式中,所述限流指标配置文件中至少还包括以下至少之一:服务在当前服务节点的执行时间,当前服务节点作为被调用方的次数、服务所属业务的随机因子。
在一个实施方式中,根据所述限流指标配置文件为服务集群中各服务节点生成各个服务对应的限流阈值,包括:
按照如下公式计算限流阈值:
其中,Y0表示当前服务节点的限流阈值,qps1表示服务集群中第一个服务节点的吞吐量谷值,qps2表示服务集群中第二个服务节点的吞吐量谷值,qpsm表示服务集群中第m个服务节点的吞吐量谷值,min表示求最小值;
其中,Pa表示业务a的优先级,ra表示业务a的随机因子,RTa表示业务a在当前服务节点的执行时间,n0表示当前服务节点作为被调用方的次数,业务a为当前服务节点所执行的服务所属的业务。
在一个实施方式中,在将生成的限流阈值推送到各个服务节点之后,还包括:
按照生成的流量阈值处理业务。
在一个实施方式中,在按照生成的流量阈值处理业务的过程中,包括:
检测当前服务节点的上一节点的实时流量值是否超出预设阈值;
如果超出所述预设阈值,则根据上一节点的实时流量值生成当前服务节点的流量阈值;
将生成的流量阈值推送至所述当前服务节点。
在一个实施方式中,根据上一节点的实时流量值生成当前服务节点的流量阈值,包括:
按照如下公式计算当前服务节点的流量阈值:
其中,Y0表示当前服务节点的限流阈值,qps1表示服务集群中第一个服务节点的吞吐量谷值,qps2表示服务集群中第二个服务节点的吞吐量谷值,qpsm表示服务集群中第m个服务节点的吞吐量谷值,min表示求最小值;
其中,Pa表示业务a的优先级,ra表示业务a的随机因子,RTa表示业务a在当前服务节点的执行时间,n表示当前服务节点作为被调用方的次数,业务a为当前服务节点所执行的服务所属的业务,L表示上一节点的实时流量值。
在一个实施方式中,如果超出所述预设阈值,则根据上一节点的实时流量值生成当前服务节点的流量阈值,包括:
如果超出所述预设阈值,则确定动态调整开关是否为开启状态;
如果动态调整开关为开启状态,则根据上一节点的实时流量值生成当前服务节点的流量阈值。
另一方面,提供了一种服务节点的限流阈值设置装置,包括:
获取模块,用于获取限流指标配置文件,其中,所述限流指标配置文件中至少包括业务的优先级;
生成模块,用于根据所述限流指标配置文件为服务集群中各服务节点生成各个服务对应的限流阈值;
推送模块,用于将生成的限流阈值推送到各个服务节点。
又一方面,提供了一种服务器设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现如下方法的步骤:
获取限流指标配置文件,其中,所述限流指标配置文件中至少包括业务的优先级;
根据所述限流指标配置文件为服务集群中各服务节点生成各个服务对应的限流阈值;
将生成的限流阈值推送到各个服务节点。
又一方面,提供了一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现如下方法的步骤:
获取限流指标配置文件,其中,所述限流指标配置文件中至少包括业务的优先级;
根据所述限流指标配置文件为服务集群中各服务节点生成各个服务对应的限流阈值;
将生成的限流阈值推送到各个服务节点。
本申请提供的服务节点的限流阈值设置方法和服务端设备,在确定各服务节点在各个服务中的限流阈值的时候,引入了业务的优先级,而不是对所有业务都采用同一优先级的方式,通过这种方式解决了现有的限流阈值设定过程中所存在的不考虑业务本身优先级所导致的设置不合理的问题,达到了合理设置限流阈值,从而达到对***资源的最优配置的技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的服务节点的限流阈值设置方法一种实施例的方法流程图;
图2是本申请提供的动态限流装置的结构框图;
图3是本申请提供的动态限流方法的方法流程图;
图4是本申请提供的服务器的一种实施例的模型结构示意图;
图5是本申请提供的服务节点的限流阈值设置装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
为了解决不同业务调用不同服务节点限流阈值的设置问题,在本例中提供了一种动态流量设置方法,设置了一个动态限流装置,该装置是一个全局流量资源协调分配集群。具体的,可以支持基于业务和服务节点两种维度的阈值计算,在实现的时候,可以通过业务的优先级设定各个服务节点的限流阈值,就可以在重启或者初始化的时候,针对业务优先级动态生成不同的限流阈值。在生成限流阈值之后,可以将阈值主动推送到各节点,使得应用***的配置可以实时生效,从而保证***流量资源的最优化配置以及***的稳定性。
基于此,在本例中提供了一种服务节点的限流阈值设置方法,如图1所示,可以包括如下步骤:
步骤101:获取限流指标配置文件,其中,所述限流指标配置文件中至少包括业务的优先级;
具体的,在服务集群中可以包含多个服务节点,每个服务节点提供多个服务,一种业务涉及多个服务。假设对于业务A而言,涉及的服务有服务1、服务2,其中,服务1依次通过服务节点a、服务节点b、服务节点c和服务节点e提供。业务B涉及的业务有服务3,依次提供服务节点c和服务节点e提供。那么对于服务节点c而言,在提供服务1的时候,上一服务节点就是b,在提供服务2的时候无上一节点。
在***开机或者重启的时候,可以获取限流指标配置文件,为了后续可以基于业务的优先级设定流量阈值,在限流指标配置文件中可以携带有各个业务的优先级。例如,业务A的优先级为最高,赋值为100,业务B的优先级为中等,赋值为50。
然而,值得注意的是,上述对业务优先级的赋值仅是一种示例性描述,在实际实现的时候,可以根据实际需求为优先级赋值,本申请对此不做限定。
步骤102:根据所述限流指标配置文件为服务集群中各服务节点生成各个服务对应的限流阈值;
因为在限流指标配置文件中携带有业务的优先级,因此,根据限流指标配置文件来计算限流阈值考虑了业务的优先级因素,可以使得设置的限流阈值更为合理。
在生成限流阈值的时候,可以是针对各个服务节点生个各个服务对应的限流阈值,因此,一个服务节点可能提供多个服务。
步骤103:将生成的限流阈值推送到各个服务节点。
为了更为准确高效的生成限流阈值,可以单独设置一个阈值控制模块,通过该模块来进行配置文件的获取和限流阈值的计算,在计算得到限流阈值之后,可以将计算得到的限流阈值推送到各个服务节点,以便在各个服务节点起作用。
在上例中,在确定各服务节点在各个服务中的限流阈值的时候,引入了业务的优先级,而不是对所有业务都采用同一优先级的方式,通过这种方式解决了现有的限流阈值设定过程中所存在的不考虑业务本身优先级所导致的设置不合理的问题,达到了合理设置限流阈值,从而达到对***资源的最优配置的技术效果。
具体的,因为服务在当前服务节点的执行时间,当前服务节点作为被调用方的次数、服务所属业务的随机因子,都会对服务节点的流量阈值的设定产生影响,因此,在设置流量阈值的时候,可以结合这些参数。
具体的,考虑到针对上述的指标存在如下特点:
1)服务执行时间(RT):是业务在该服务节点的响应时间,一定程度决定了该节点请求的流速,RT高的节点阈值应该设置的相对偏小,因此,应该与RT负相关;
2)优先级(P):是业务的优先级,优先级的设置保证了优先级高的业务有充分的资源,针对高优先级的业务的服务节点,对应的阈值应该适当增加,因此,应该与优先级p正相关;
3)服务调用量(n):是服务节点作为被调用方的次数,为了保证生态圈中关键节点(被其它节点调用比较多的节点)可以稳定运行,服务调用量(n)越大,那么该节点的节点阈值应该的设定的相对偏小,因此,应该与n负相关;
4)随机因子(r):表示业务的随机性,有时业务会存在批量处理的需求,这样就导致业务的峰值和谷值相差较大,针对这类业务按照均值往往无法准确的给出合理的阈值,因此需要随机因子(r)来调整阈值的设定。业务量的最大值与最小值之间的差值越大,那么随机因子的值越大,因此,应该与r正相关;
因此,可以按照如下公式计算限流阈值:
其中,Y0表示当前服务节点的限流阈值,qps1表示服务集群中第一个服务节点的吞吐量谷值,qps2表示服务集群中第二个服务节点的吞吐量谷值,qpsm表示服务集群中第m个服务节点的吞吐量谷值,min表示求最小值;
其中,Pa表示业务a的优先级,ra表示业务a的随机因子,RTa表示业务a在当前服务节点的执行时间,n0表示当前服务节点作为被调用方的次数,业务a为当前服务节点所执行的服务所属的业务。
上述计算流量阈值的方式可以是***开机或者重启的时候执行的,在将生成的限流阈值推送到各个服务节点之后,就可以按照生成的流量阈值处理业务,即,基于生成并推送到各个服务节点的流量阈值控制业务的处理。
进一步的,考虑到有时上游节点会存在突发情况,导致上游节点的节点流量突然异常升高,这将对整个生态圈产生影响,如果当前节点检查到上游节点的这些异常情况,可以自动调整节点的限流阈值,以免异常请求被传到下游的服务节点。
为此,在按照生成的流量阈值处理业务的过程中,可以检测当前服务节点的上一节点的实时流量值是否超出预设阈值;如果超出所述预设阈值,则根据上一节点的实时流量值生成当前服务节点的流量阈值;将生成的流量阈值推送至所述当前服务节点。
为了可以解决这个问题,在业务执行的过程中,动态调整流量阈值的时候,可以引入上一节点的实时流量,这样可以指导进行合理的流量阈值设定,例如:
可以按照如下公式计算当前服务节点的流量阈值:
其中,Y0表示当前服务节点的限流阈值,qps1表示服务集群中第一个服务节点的吞吐量谷值,qps2表示服务集群中第二个服务节点的吞吐量谷值,qpsm表示服务集群中第m个服务节点的吞吐量谷值,min表示求最小值;
其中,Pa表示业务a的优先级,ra表示业务a的随机因子,RTa表示业务a在当前服务节点的执行时间,n表示当前服务节点作为被调用方的次数,业务a为当前服务节点所执行的服务所属的业务,L表示上一节点的实时流量值。
在实际实现的过程中,动态调整流量阈值可以是一个可选功能,即,可以对该功能进行开闭,如果该功能是打开的,那么就进行动态调整,如果该功能是关闭的,那么就不进行动态调整。具体的,在根据上一节点的实时流量值生成当前服务节点的流量阈值的时候,就可以包括:确定动态调整开关是否为开启状态;如果动态调整开关为开启状态,则根据上一节点的实时流量值生成当前服务节点的流量阈值。
下面结合一个具体实施例对上述方法进行说明,然而,值得注意的是,该具体实施例仅是为了更好地说明本申请,并不构成对本申请的不当限定。
为了解决不同业务调用不同服务节点限流阈值的设置问题,在本例中提供了一种动态流量设置方法,设置了一个动态限流装置,该装置是一个全局流量资源协调分配集群。具体的,可以支持基于业务和服务节点两种维度的阈值计算,在实现的时候,可以根据上一个节点流量值动态调整当前节点和后续节点的限流阈值,且在重启或者初始化的时候,可以针对业务优先级动态生成不同的限流阈值。在生成限流阈值之后,可以将阈值主动推送到各节点,使得应用***的配置可以实时生效。从而保证***流量资源的最优化配置以及***的稳定性。
在服务集群中可以包含多个服务节点,每个服务节点提供多个服务,一种业务涉及多个服务(可以在同一节点,也可以跨节点)。整个服务节点生态群,假设有m个服务节点,那么该服务节点生态群的吞吐量谷值为min{qps1、qps2……、qpsm},那每个节点的阈值设置为其中/>为每个节点的动态因子,/>的值可以动态取决于服务调用量、服务执行时间、平均吞吐量、业务平均调用量、优先级和随机因子等指标。
考虑到针对上述的指标存在如下特点:
1)服务执行时间(RT):是业务在该服务节点的响应时间,一定程度决定了该节点请求的流速,RT高的节点阈值应该设置的相对偏小,因此,应该与RT负相关;
2)优先级(P):是业务的优先级,优先级的设置保证了优先级高的业务有充分的资源,针对高优先级的业务的服务节点,对应的阈值应该适当增加,因此,应该与优先级p正相关;
3)服务调用量(n):是服务节点作为被调用方的次数,为了保证生态圈中关键节点(被其它节点调用比较多的节点)可以稳定运行,服务调用量(n)越大,那么该节点的节点阈值应该的设定的相对偏小,因此,应该与n负相关;
4)随机因子(r):表示业务的随机性,有时业务会存在批量处理的需求,这样就导致业务的峰值和谷值相差较大,针对这类业务按照均值往往无法准确的给出合理的阈值,因此需要随机因子(r)来调整阈值的设定。业务量的最大值与最小值之间的差值越大,那么随机因子的值越大,因此,应该与r正相关;
因此,可以按照如下公式设定
其中,Pa表示业务a的优先级,ra表示业务a的随机因子,RTa表示业务a在服务节点的执行时间,n表示服务节点作为被调用方的次数。
进一步的,考虑到有时上游节点会存在突发情况,导致上游节点的节点流量突然异常升高,这将对整个生态圈产生影响,如果当前节点检查到上游节点的这些异常情况,可以自动调整节点的限流阈值,以免异常请求被传到下游的服务节点。
为此,可以在上述的的设定公式中,可以引入上一节点的节点流量:
其中,Pa表示业务a的优先级,ra表示业务a的随机因子,RTa表示业务a在服务节点的执行时间,n表示服务节点作为被调用方的次数,L表示上一异常节点的节点流量。
具体的,可以按照如下步骤进行限流:
步骤1:动态限流装置初始化,限流指标配置文件加载:
即,在***启动的时候,动态限流装置在启动的时候加载指标配置文件,以获取基本的阈值计算指标(例如:服务调用量、服务之星时间、平均吞吐量、业务平均调用量、优先级和随机因子),并将获取的基本的阈值计算指标存放在内存中。
步骤2:基于上述的基本的阈值计算指标计算各个服务节点的限流阈值,作为初始值。
即,在服务节点第一次部署时,根据上述的基本的阈值计算指标计算出各个服务节点的限流阈值,作为各个服务节点的初始值。
在计算初始值的时候,可以按照如下公式计算各个节点的限流阈值Y0
其中,Y0表示当前节点的限流阈值,qps1表示服务集群中第一个服务节点的吞吐量谷值,qps2表示服务集群中第二个服务节点的吞吐量谷值,qpsm表示服务集群中第m个服务节点的吞吐量谷值,min表示求最小值;
其中,所谓的吞吐量指的是服务节点每秒钟处理请求的次数,是节点压测获取的基本指标值。
其中,Pa表示业务a的优先级,ra表示业务a的随机因子,RTa表示业务a在服务节点的执行时间,n0表示当前服务节点作为被调用方的次数。
步骤3:在服务提供的过程中,实时检查上一节点的流量值,动态调整后面节点的阈值。
具体的,如果检测到上一个节点的流量有异常变化(例如:大于日常值的3倍)且动态调整阈值开关为开(即,确定是可动态调整状态)那么可以确定当前为异常流量,则可以重新设置当前服务节点的限流阈值,可以是直接将当前节点的限流阈值降低预定比例,也可以是按照如下公式计算得到更新后的限流阈值:
其中,Y1表示当前节点调整后的限流阈值,qps1表示服务集群中第一个服务节点的吞吐量谷值,qps2表示服务集群中第二个服务节点的吞吐量谷值,qpsm表示服务集群中第m个服务节点的吞吐量谷值,min表示求最小值;
其中,Pa表示业务a的优先级,ra表示业务a的随机因子,RTa表示业务a在服务节点的执行时间,n1表示服务节点作为被调用方的次数,L表示上一异常节点的节点流量。
步骤4:将确定的更新后的限流阈值推送到当前节点。
举例而言,服务A所需的服务节点依次为:a节点-b节点-c节点-d节点,即,整个服务A的执行需要abcd四个节点,如果b节点出现突然的流量暴增,那么就需要对c节点的限流阈值进行调整,这样才能避免过多的异常流量流到d节点,如果a节点突然出现流量暴增,那么就需要对b节点的限流阈值进行调整,这样才能避免过多的异常流量流到c节点和d节点。
如图2所示,该动态限流装置可以包括:限流指标配置文件初始化模块、阈值动态调整检测模块、阈值计算模块和阈值动态推送模块。
基于图2所示的动态限流装置,可以如图3所示,执行如下限流操作:
S1:限流指标装置重启;
S2:加载限流指标配置文件,如果成功加载,则执行S3,如果未成功加载,则执行S5;
S3:动态调整阈值模块计算节点阈值;
S4:刷新服务节点的阈值;
S5:结束限流过程。
上述的动态限流阈值设定方法可以应用在金融市场业务中,由于金融市场业务自身特点,交易量大,交易流程复杂,调用的服务比较多,不同的业务之间除了个体差异,还存在很多相同的流程,不同的业务自身也存在优先级的差异。比如代理领域涉及流程:业务参数校验服务、预审批单簿记服务、事前控制服务、交易单簿记服务、交易要素比对服务、审批流程服务、中台复核服务、后台下数服务。同样,以交易领域结构性存款业务为例,其业务流程为:参数校验服务、交易单簿记服务、风控合规服务、审批流程服务、中台复核服务。根据金融市场业务中不同业务之间的优先级程度或者是重要程度可以设置不同的限流阈值,且可以动态设置金融市场服务群组中每个节点每个业务的限流阈值。
在上例中,针对金融市场业务场景中不同业务,不同服务动态加载不同的限流阈值,该阈值的设置取代固定的阈值设置方式,从而使得可以根据金融市场业务的重要程度设置不同的限流阈值,动态设置金融市场服务群组里每个节点每个业务的限流阈值,根据上一个节点的业务量,动态调整本节点的阈值,使得整个服务节点的流量处于最佳状态。
本申请上述实施例所提供的方法实施例可以在服务器端、计算机终端或者类似的运算装置中执行。以运行在服务器上为例,图4是本发明实施例的一种服务节点的限流阈值设置方法的服务器的硬件结构框图。如图4所示,服务器10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器10还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的服务节点的限流阈值设置方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的服务节点的限流阈值设置方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至服务器10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器10的通信供应商提供的无线网络。在一个实例中,传输模块106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
在软件层面,上述装置服务节点的限流阈值设置装置可以如图5所示,包括:
获取模块501,用于获取限流指标配置文件,其中,所述限流指标配置文件中至少包括业务的优先级;
生成模块502,用于根据所述限流指标配置文件为服务集群中各服务节点生成各个服务对应的限流阈值;
推送模块503,用于将生成的限流阈值推送到各个服务节点。
在一个实施方式中,上述限流指标配置文件中至少还可以包括以下至少之一:服务在当前服务节点的执行时间,当前服务节点作为被调用方的次数、服务所属业务的随机因子。
在一个实施方式中,上述生成模块502具体可以按照如下公式计算限流阈值:
其中,Y0表示当前服务节点的限流阈值,qps1表示服务集群中第一个服务节点的吞吐量谷值,qps2表示服务集群中第二个服务节点的吞吐量谷值,qpsm表示服务集群中第m个服务节点的吞吐量谷值,min表示求最小值;
其中,Pa表示业务a的优先级,ra表示业务a的随机因子,RTa表示业务a在当前服务节点的执行时间,n0表示当前服务节点作为被调用方的次数,业务a为当前服务节点所执行的服务所属的业务。
在一个实施方式中,上述服务节点的限流阈值设置装置还可以包括:
处理模块,用于按照生成的流量阈值处理业务。
在一个实施方式中,在按照生成的流量阈值处理业务的过程中,还可以检测当前服务节点的上一节点的实时流量值是否超出预设阈值;如果超出所述预设阈值,则根据上一节点的实时流量值生成当前服务节点的流量阈值;将生成的流量阈值推送至所述当前服务节点。
具体的,可以按照如下公式计算当前服务节点的流量阈值:
其中,Y0表示当前服务节点的限流阈值,qps1表示服务集群中第一个服务节点的吞吐量谷值,qps2表示服务集群中第二个服务节点的吞吐量谷值,qpsm表示服务集群中第m个服务节点的吞吐量谷值,min表示求最小值;
其中,Pa表示业务a的优先级,ra表示业务a的随机因子,RTa表示业务a在当前服务节点的执行时间,n表示当前服务节点作为被调用方的次数,业务a为当前服务节点所执行的服务所属的业务,L表示上一节点的实时流量值。
在一个实施方式中,根据上一节点的实时流量值生成当前服务节点的流量阈值,可以包括:确定动态调整开关是否为开启状态;如果动态调整开关为开启状态,则根据上一节点的实时流量值生成当前服务节点的流量阈值。
本申请的实施例还提供能够实现上述实施例中的服务节点的限流阈值设置方法中全部步骤的一种电子设备的具体实施方式,所述电子设备具体包括如下内容:处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的服务节点的限流阈值设置方法中的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤1:获取限流指标配置文件,其中,所述限流指标配置文件中至少包括业务的优先级;
步骤2:根据所述限流指标配置文件为服务集群中各服务节点生成各个服务对应的限流阈值;
步骤3:将生成的限流阈值推送到各个服务节点。
从上述描述可知,本申请实施例在各服务节点在各个服务中的限流阈值的时候,引入了业务的优先级,而不是对所有业务都采用同一优先级的方式,通过这种方式解决了现有的限流阈值设定过程中所存在的不考虑业务本身优先级所导致的设置不合理的问题,达到了合理设置限流阈值,从而达到对***资源的最优配置的技术效果。
本申请的实施例还提供能够实现上述实施例中的服务节点的限流阈值设置方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的服务节点的限流阈值设置方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤1:获取限流指标配置文件,其中,所述限流指标配置文件中至少包括业务的优先级;
步骤2:根据所述限流指标配置文件为服务集群中各服务节点生成各个服务对应的限流阈值;
步骤3:将生成的限流阈值推送到各个服务节点。
从上述描述可知,本申请实施例在各服务节点在各个服务中的限流阈值的时候,引入了业务的优先级,而不是对所有业务都采用同一优先级的方式,通过这种方式解决了现有的限流阈值设定过程中所存在的不考虑业务本身优先级所导致的设置不合理的问题,达到了合理设置限流阈值,从而达到对***资源的最优配置的技术效果。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本说明书实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书的实施例可提供为方法、***或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。

Claims (9)

1.一种服务节点的限流阈值设置方法,其特征在于,所述方法包括:
获取限流指标配置文件,其中,所述限流指标配置文件中至少包括业务的优先级;
根据所述限流指标配置文件为服务集群中各服务节点生成各个服务对应的限流阈值;
将生成的限流阈值推送到各个服务节点;
其中,根据所述限流指标配置文件为服务集群中各服务节点生成各个服务对应的限流阈值,包括:
按照如下公式计算限流阈值:
其中,Y0表示当前服务节点的限流阈值,qps1表示服务集群中第一个服务节点的吞吐量谷值,qps2表示服务集群中第二个服务节点的吞吐量谷值,qpsm表示服务集群中第m个服务节点的吞吐量谷值,min表示求最小值;
其中,Pa表示业务a的优先级,ra表示业务a的随机因子,RTa表示业务a在当前服务节点的执行时间,n0表示当前服务节点作为被调用方的次数,业务a为当前服务节点所执行的服务所属的业务。
2.根据权利要求1所述的方法,其特征在于,所述限流指标配置文件中至少还包括以下至少之一:服务在当前服务节点的执行时间,当前服务节点作为被调用方的次数、服务所属业务的随机因子。
3.根据权利要求1所述的方法,其特征在于,在将生成的限流阈值推送到各个服务节点之后,还包括:
按照生成的流量阈值处理业务。
4.根据权利要求3所述的方法,其特征在于,在按照生成的流量阈值处理业务的过程中,包括:
检测当前服务节点的上一节点的实时流量值是否超出预设阈值;
如果超出所述预设阈值,则根据上一节点的实时流量值生成当前服务节点的流量阈值;
将生成的流量阈值推送至所述当前服务节点。
5.根据权利要求4所述的方法,其特征在于,根据上一节点的实时流量值生成当前服务节点的流量阈值,包括:
按照如下公式计算当前服务节点的流量阈值:
其中,Y0表示当前服务节点的限流阈值,qps1表示服务集群中第一个服务节点的吞吐量谷值,qps2表示服务集群中第二个服务节点的吞吐量谷值,qpsm表示服务集群中第m个服务节点的吞吐量谷值,min表示求最小值;
其中,Pa表示业务a的优先级,ra表示业务a的随机因子,RTa表示业务a在当前服务节点的执行时间,n表示当前服务节点作为被调用方的次数,业务a为当前服务节点所执行的服务所属的业务,L表示上一节点的实时流量值。
6.根据权利要求4所述的方法,其特征在于,如果超出所述预设阈值,则根据上一节点的实时流量值生成当前服务节点的流量阈值,包括:
如果超出所述预设阈值,则确定动态调整开关是否为开启状态;
如果动态调整开关为开启状态,则根据上一节点的实时流量值生成当前服务节点的流量阈值。
7.一种服务节点的限流阈值设置装置,其特征在于,包括:
获取模块,用于获取限流指标配置文件,其中,所述限流指标配置文件中至少包括业务的优先级;
生成模块,用于根据所述限流指标配置文件为服务集群中各服务节点生成各个服务对应的限流阈值;
推送模块,用于将生成的限流阈值推送到各个服务节点;
其中,根据所述限流指标配置文件为服务集群中各服务节点生成各个服务对应的限流阈值,包括:
按照如下公式计算限流阈值:
其中,Y0表示当前服务节点的限流阈值,qps1表示服务集群中第一个服务节点的吞吐量谷值,qps2表示服务集群中第二个服务节点的吞吐量谷值,qpsm表示服务集群中第m个服务节点的吞吐量谷值,min表示求最小值;
其中,Pa表示业务a的优先级,ra表示业务a的随机因子,RTa表示业务a在当前服务节点的执行时间,n0表示当前服务节点作为被调用方的次数,业务a为当前服务节点所执行的服务所属的业务。
8.一种服务端设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至6中任一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现权利要求1至6中任一项所述方法的步骤。
CN202010578988.5A 2020-06-23 2020-06-23 服务节点的限流阈值设置方法和服务端设备 Active CN111767142B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010578988.5A CN111767142B (zh) 2020-06-23 2020-06-23 服务节点的限流阈值设置方法和服务端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010578988.5A CN111767142B (zh) 2020-06-23 2020-06-23 服务节点的限流阈值设置方法和服务端设备

Publications (2)

Publication Number Publication Date
CN111767142A CN111767142A (zh) 2020-10-13
CN111767142B true CN111767142B (zh) 2023-08-08

Family

ID=72721777

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010578988.5A Active CN111767142B (zh) 2020-06-23 2020-06-23 服务节点的限流阈值设置方法和服务端设备

Country Status (1)

Country Link
CN (1) CN111767142B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112929290B (zh) * 2021-02-02 2023-02-24 湖南快乐阳光互动娱乐传媒有限公司 一种限流方法、装置、***、存储介质和设备、以及网关
CN114039893A (zh) * 2021-11-08 2022-02-11 航天信息股份有限公司 一种api网关限速方法及装置
CN114500381A (zh) * 2022-01-20 2022-05-13 北京奇艺世纪科技有限公司 网络带宽限制方法、***、电子设备及可读存储介质
CN114745328B (zh) * 2022-02-16 2023-12-26 多点生活(成都)科技有限公司 一种网关动态限流方法及其构成的实时限流方法
CN114978864A (zh) * 2022-05-18 2022-08-30 中国工商银行股份有限公司 一种限流阈值动态调整方法及装置
CN115242718B (zh) * 2022-06-21 2024-01-30 平安科技(深圳)有限公司 集群限流方法、装置、设备及介质
CN118233397A (zh) * 2022-12-21 2024-06-21 中兴通讯股份有限公司 消息中间件的自适应动态限流方法、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107332785A (zh) * 2017-05-23 2017-11-07 国家电网公司 一种基于动态工作阈值的有效流量控制方法
CN110996352A (zh) * 2019-12-20 2020-04-10 众安在线财产保险股份有限公司 一种流量控制方法、装置、计算机设备及存储介质
CN111262791A (zh) * 2020-01-08 2020-06-09 江苏满运软件科技有限公司 一种流量管控方法、装置、电子设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107332785A (zh) * 2017-05-23 2017-11-07 国家电网公司 一种基于动态工作阈值的有效流量控制方法
CN110996352A (zh) * 2019-12-20 2020-04-10 众安在线财产保险股份有限公司 一种流量控制方法、装置、计算机设备及存储介质
CN111262791A (zh) * 2020-01-08 2020-06-09 江苏满运软件科技有限公司 一种流量管控方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN111767142A (zh) 2020-10-13

Similar Documents

Publication Publication Date Title
CN111767142B (zh) 服务节点的限流阈值设置方法和服务端设备
CN110933178B (zh) 调整集群***内的节点配置的方法及服务器
CN112650575B (zh) 资源调度方法、装置和云端服务***
CN112214288B (zh) 基于Kubernetes集群的Pod调度方法、装置、设备和介质
CN111245732A (zh) 一种流量控制方法、装置及设备
CN110677854A (zh) 载频容量调整的方法、装置、设备和介质
CN111865665B (zh) 一种网络设备故障自愈方法和装置
CN111291252B (zh) 一种每秒查询率的调整方法、装置、电子设备及存储介质
CN107948084B (zh) 一种限流方法和装置
CN112527544A (zh) 一种服务器、触发熔断的方法及装置
CN111538572A (zh) 任务处理方法、装置、调度服务器及介质
CN114205361B (zh) 一种负载均衡方法以及服务器
CN110413427B (zh) 订阅数据拉取方法、装置、设备及存储介质
CN112346872A (zh) 基于服务调用链路的云计算扩容方法及装置
CN114124942A (zh) 核心网资源调度方法、装置及电子设备
CN115361295B (zh) 基于topsis的资源备份方法、装置、设备及介质
CN109284275B (zh) 一种云平台虚拟机文件***监控方法和装置
CN110856183A (zh) 基于异构负载互补的边缘服务器部署方法及应用
CN116055401A (zh) 一种消息处理方法、装置、设备及存储介质
CN115498735A (zh) 一种燃料电池单体电压监控方法及燃料电池控制器
WO2018188405A1 (zh) 云应用资源的配置方法及装置
CN115794396A (zh) 资源分配的方法、***和电子设备
CN111935289B (zh) 基于区块链的动态监控方法和装置
US10089149B2 (en) Method for scheduling multiple periodic requests and scheduling device
CN114296869A (zh) 一种基于tcp长连接的服务器节点服役方法及装置

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