CN115514713B - 一种业务处理方法、系统、装置及可读存储介质 - Google Patents
一种业务处理方法、系统、装置及可读存储介质 Download PDFInfo
- Publication number
- CN115514713B CN115514713B CN202211129122.1A CN202211129122A CN115514713B CN 115514713 B CN115514713 B CN 115514713B CN 202211129122 A CN202211129122 A CN 202211129122A CN 115514713 B CN115514713 B CN 115514713B
- Authority
- CN
- China
- Prior art keywords
- current
- quota
- service
- link
- delay time
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 30
- 230000000670 limiting effect Effects 0.000 claims abstract description 108
- 238000000034 method Methods 0.000 claims abstract description 39
- 230000008569 process Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 11
- 230000001960 triggered effect Effects 0.000 claims description 7
- 230000000153 supplemental effect Effects 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请公开了一种业务处理方法、系统、装置及可读存储介质,涉及数据传输领域。该方案中,对当前链路上的当前业务进行处理时,判断当前链路是否为目标链路;若为目标链路,则判定当前链路支持限流,并确定与当前业务对应的延时时间,并根据延时时间对业务进行延时处理;否则,对当前业务直接进行处理。本申请中可以对当前业务所在的链路进行判断,并在其支持限流时,对当前业务进行延时处理,以保证对业务处理的稳定性,避免突发高峰流量带来的影响,进而可以提升设备的安定性,防止达到设备中模块或节点的流量瓶颈。
Description
技术领域
本申请涉及数据传输领域,特别涉及一种业务处理方法、系统、装置及可读存储介质。
背景技术
各设备通过业务链路处理业务时,在某一时刻可能会出现业务链路上处理的业务的数据量过大的情况,此时,该业务链路上会产生高峰流量或者波峰流量,导致处理业务时的稳定性较差,甚至可能会达到设备中某个模块或节点的流量瓶颈,导致设备的安定性较差。
发明内容
本申请的目的是提供一种业务处理方法、系统、装置及可读存储介质,可以对当前业务所在的链路进行判断,并在其支持限流时,对当前业务进行延时处理,以保证对业务处理的稳定性,避免突发高峰流量带来的影响,进而可以提升设备的安定性,防止达到设备中模块或节点的流量瓶颈。
为解决上述技术问题,本申请提供了一种业务处理方法,应用于处理器,包括:
对当前链路上的当前业务进行处理时,判断所述当前链路是否为目标链路;
若为所述目标链路,则判定所述当前链路支持限流,并确定与所述当前业务对应的延时时间,并根据所述延时时间对所述当前业务进行延时处理;
否则,对所述当前业务直接进行处理。
优选地,还包括:
预先创建限流对象,并将所述限流对象与所述目标链路关联;
判断所述当前链路是否为目标链路,包括:
判断所述当前链路是否关联所述限流对象;
若关联所述限流对象,则判定所述当前链路为所述目标链路;
若未关联所述限流对象,则判定所述当前链路不是所述目标链路。
优选地,所述限流对象的参数包括限流对象ID,判断所述当前链路是否关联所述限流对象,包括:
判断所述当前链路对应的限流对象ID是否有效;
若有效,则判定所述当前链路关联所述限流对象;
若无效,则判定所述当前链路未关联所述限流对象。
优选地,确定与所述当前业务对应的延时时间,包括:
计算处理所述当前业务所需要消耗的消耗配额;
判断所述消耗配额是否大于当前可用配额;
若不大于,则确定所述延时时间为0;
若大于,则根据所述消耗配额与所述当前可用配额的差值计算所述延时时间。
优选地,所述目标链路支持限流时的限流对象包括IOPS和/或带宽时,还包括:
在所述限流对象为IOPS时,将所述当前业务的第一权重设为1;
在所述限流对象为带宽时,计算所述当前业务的第二权重,所述第二权重=所述当前业务的数据量/4K;
计算处理所述当前业务所需要消耗的消耗配额,包括:
根据所述限流对象、所述第一权重及所述第二权重计算处理所述当前业务所需要消耗的消耗配额。
优选地,所述目标链路支持限流时的限流对象包括IOPS和带宽时;
根据所述消耗配额与所述当前可用配额的差值计算所述延时时间,包括:
根据IOPS对应的消耗配额与所述当前可用配额的差值计算第一延时时间;
根据带宽对应的消耗配额与所述当前可用配额的差值计算第二延时时间;
将所述第一延时时间与所述第二延时时间中的较大值作为所述延时时间。
优选地,判断所述消耗配额是否大于所述当前可用配额之前,还包括:
计算处理所述当前业务与处理上一次业务之间的时间间隔;
判断所述时间间隔是否大于单位时间,所述单位时间为所述处理器处理单次业务所需要的时间;
若不大于所述单位时间,则判定不需要补充配额,并直接进入判断所述消耗配额是否大于所述当前可用配额的步骤。
优选地,在判定所述时间间隔大于所述单位时间之后,还包括:
根据所述时间间隔、所述单位时间及单位配额为所述业务链路分配补充配额,所述单位配额为所述处理器处理单次业务所能分配的配额;
将所述补充配额与所述当前可用配额的和值作为更新后的当前可用配额;
判断所述消耗配额是否大于所述当前可用配额,包括:
判断所述消耗配额是否大于更新后的所述当前可用配额。
优选地,将所述补充配额与所述当前可用配额的和值作为更新后的当前可用配额,包括:
将所述补充配额、所述当前可用配额及预设配额的和值作为更新后的所述当前可用配额。
优选地,判断所述消耗配额是否大于更新后的所述当前可用配额之前,还包括:
根据所述时间间隔及处理上一次业务的时间更新处理所述当前业务的时间。
优选地,在对所述当前业务处理之后,还包括:
将更新后的所述当前可用配额与所述消耗配额的差值作为再次更新后的当前可用配额。
优选地,确定与所述当前业务对应的延时时间之后,还包括:
判断所述延时时间是否大于最大延迟时间;
若不大于所述最大延迟时间,则进入根据所述延时时间对所述当前业务进行延时处理的步骤;
若大于所述最大延迟时间,则停止对所述当前业务进行处理,并输出提示信息。
优选地,根据所述延时时间对所述当前业务进行延时处理,包括:
启动定时器,并为所述定时器设置所述延时时间,以使所述定时器在所述延时时间后触发;
在所述定时器被触发时,对所述当前业务进行处理。
为解决上述技术问题,本申请还提供了一种业务处理系统,应用于处理器,包括:
第一判断单元,用于对当前链路上的当前业务进行处理时,判断所述当前链路是否为目标链路;
第一执行单元,用于在所述当前链路为所述目标链路时,判定所述当前链路支持限流,并确定与所述当前业务对应的延时时间,并根据所述延时时间对所述当前业务进行延时处理;
第二执行单元,用于在所述当前链路不是所述目标链路时,对所述当前业务直接进行处理。
为解决上述技术问题,本申请还提供了一种业务处理装置,包括:
存储器,用于存储计算机程序;
处理器,用于在存储计算机程序时,实现如上述所述的业务处理方法的步骤。
为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的业务处理方法的步骤。
本申请提供了一种业务处理方法,涉及数据传输领域。该方案中,对当前链路上的当前业务进行处理时,判断当前链路是否为目标链路;若为目标链路,则判定当前链路支持限流,并确定与当前业务对应的延时时间,并根据延时时间对业务进行延时处理;否则,对当前业务直接进行处理。本申请中可以对当前业务所在的链路进行判断,并在其支持限流时,对当前业务进行延时处理,以保证对业务处理的稳定性,避免突发高峰流量带来的影响,进而可以提升设备的安定性,防止达到设备中模块或节点的流量瓶颈。
本申请还提供了一种业务处理系统、装置及可读存储介质,与上述描述的业务处理方法具有相同的有益效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种业务处理方法的流程示意图;
图2为本申请提供的一种业务处理方法的具体实现流程示意图;
图3为本申请提供的一种业务处理系统的结构框图;
图4为本申请提供的一种业务处理装置的结构框图。
具体实施方式
本申请的核心是提供一种业务处理方法、系统、装置及可读存储介质,可以对当前业务所在的链路进行判断,并在其支持限流时,对当前业务进行延时处理,以保证对业务处理的稳定性,避免突发高峰流量带来的影响,进而可以提升设备的安定性,防止达到设备中模块或节点的流量瓶颈。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参照图1,图1为本申请提供的一种业务处理方法的流程示意图,该方法应用于处理器,包括:
S11:对当前链路上的当前业务进行处理时,判断当前链路是否为目标链路;
具体地,本申请中预先将某个传输数据的链路设定为目标链路,通常情况下,目标链路为传输数据时容易拥挤的链路,目标链路支持限流的功能,以缓解数据传输拥挤的情况。
因此,本申请中在对数据进行处理时,需要先判断当前的链路是否为目标链路,以确定是否要进行限流处理。
S12:若为目标链路,则判定当前链路支持限流,并确定与当前业务对应的延时时间,并根据延时时间对当前业务进行延时处理;
具体地,在上述确定当前链路为目标链路时,表示当前链路支持限流处理,并确定当前链路上的当前业务对应的延时时间,并根据延时时间对当前业务极性延时处理,以实现错峰处理,避免达到当前链路的流量瓶颈。
其中,上述延时时间可以为某个时间段,也可以为零,具体是否需要延时,以及需要的延时时间为多少,根据实际情况而定,本申请在此不再限定。
S13:否则,对当前业务直接进行处理。
具体地,在上述确定当前链路不是目标链路时,表示当前链路不支持限流处理,此时,可以直接对当前业务进行处理。
作为一种优选的实施例,还包括:
预先创建限流对象,并将限流对象与目标链路关联;
判断当前链路是否为目标链路,包括:
判断当前链路是否关联限流对象;
若关联限流对象,则判定当前链路为目标链路;
若未关联限流对象,则判定当前链路不是目标链路。
具体地,申请人在设定目标链路的方式为:为目标链路设定一个限流对象,并将限流对象与目标链路关联。此时,对应的,判断当前链路是否为目标链路的具体实现方式为:判断当前链路是否关联限流对象,若当前链路关联限流对象,则表示当前链路为目标链路;否则,表示当前链路不是目标链路。
作为一种优选的实施例,限流对象的参数包括限流对象ID,判断当前链路是否关联限流对象,包括:
判断当前链路对应的限流对象ID是否有效;
若有效,则判定当前链路关联限流对象;
若无效,则判定当前链路未关联限流对象。
具体地,在目标链路的预设位置设置了用于存储限流对象ID的地址或空间,若为目标链路,则填写对应的限流对象ID,此时对应的限流对象ID有效,否则,限流对象ID为无效状态。
因此,本申请中判断当前链路是否关联限流对象的具体实现方式为:判断当前链路对应的限流对象ID是否有效,若有效则表示当前链路关联限流对象,也即,当前链路为目标链路,否则表示前链路未关联限流对象,也即当前链路不是目标链路。
作为一种优选的实施例,确定与当前业务对应的延时时间,包括:
计算处理当前业务所需要消耗的消耗配额;
判断消耗配额是否大于当前可用配额;
若不大于,则确定延时时间为0;
若大于,则根据消耗配额与当前可用配额的差值计算延时时间。
具体地,本申请旨在提供一种确定与当前业务对应的延时时间的具体实现方式,具体地,在对当前业务进行处理时,需要一定的配额才可以进行正常处理。因此,本申请中先计算处理当前业务所需要消耗的消耗配额,在消耗配额大于当前可用配额时,表示当前可用配额不够处理当前业务,此时,根据消耗配额与当前可用配额的差值计算延时时间,在消耗配额不大于当前可用配额时,表示当前可用配额可以处理当前业务,此时,将延时时间记为零,也即可以直接处理当期业务。
作为一种优选的实施例,目标链路支持限流时的限流对象包括IOPS(Input/Output Operations Per Second,每秒的读写次数)和/或带宽时,还包括:
在限流对象为IOPS时,将当前业务的第一权重设为1;
在限流对象为带宽时,计算当前业务的第二权重,第二权重=当前业务的数据量/4K;
计算处理当前业务所需要消耗的消耗配额,包括:
根据限流对象、第一权重及第二权重计算处理当前业务所需要消耗的消耗配额。
进一步的,本申请中在对目标链路进行限流时,可以是对IOPS进行限流,也可以是对带宽进行限流,也即是,限流对象可以包括IOPS和/或带宽,此时,为统一计算方式,分别为IOPS和带宽设定对应的权重,其中,将IOPS对应的第一权重设定为1,将带宽对应的第二权重设为当前业务的数据量/4K(通常每页数据量为4K),此时,计算消耗配额的方式为:根据限流对象、第一权重和第二权重计算对应的消耗配额。
作为一种优选的实施例,目标链路支持限流时的限流对象包括IOPS和带宽时;
根据消耗配额与当前可用配额的差值计算延时时间,包括:
根据IOPS对应的消耗配额与当前可用配额的差值计算第一延时时间;
根据带宽对应的消耗配额与当前可用配额的差值计算第二延时时间;
将第一延时时间与第二延时时间中的较大值作为延时时间。
具体地,在上述限流对象包括IOPS和带宽二者时,本申请中会分别基于IOPS对应的消耗配额与当前可用配额的差值计算出一个第一延时时间,以及基于带宽对应的消耗配额与当前可用配额的差值计算出一个第二延时时间,然后为保证对当前业务的可靠延时,本申请中选用两个延时时间中的较大者作为最终的延时时间。
作为一种优选的实施例,判断消耗配额是否大于当前可用配额之前,还包括:
计算处理当前业务与处理上一次业务之间的时间间隔;
判断时间间隔是否大于单位时间,单位时间为处理器处理单次业务所需要的时间;
若不大于单位时间,则判定不需要补充配额,并直接进入判断消耗配额是否大于当前可用配额的步骤。
具体地,每隔单位时间分配一次配额,若处理当前业务的时间与处理上一次业务的时间的时间间隔不大于单位时间,则表示还没有分配配额的时间,此时表示不需要补充配额,直接进入判断消耗配额是否大于当前可用配额的步骤即可。
作为一种优选的实施例,在判定时间间隔大于单位时间之后,还包括:
根据时间间隔、单位时间及单位配额为业务链路分配补充配额,单位配额为处理器处理单次业务所能分配的配额;
将补充配额与当前可用配额的和值作为更新后的当前可用配额;
判断消耗配额是否大于当前可用配额,包括:
判断消耗配额是否大于更新后的当前可用配额。
若时间间隔大于单位时间,在表示需要补充配额,计算补充配额的方式为:根据时间间隔、单位时间及单位配额计算补充配额,此时,将补充配额和原来的当前可用配额的和值作为更新后的当前可用配额。此时则是判断更新后的当前可用配额与消耗配额之间的大小关系。
其中,补充配额=时间间隔/单位时间*单位配额;更新后的当前可用配额=时间间隔/单位时间*单位配额+原来的当前可用配额。
作为一种优选的实施例,将补充配额与当前可用配额的和值作为更新后的当前可用配额,包括:
将补充配额、当前可用配额及预设配额的和值作为更新后的当前可用配额。
进一步的,为保证当前可用配额的可靠性,本申请中对当前可用配额进行更新时,还在补充配额和原来的当前可用配额的和值的基础上,还增加了一个余量(预设配额),将此三者的和值作为更新后的当前可用配额。
作为一种优选的实施例,判断消耗配额是否大于更新后的当前可用配额之前,还包括:
根据时间间隔及处理上一次业务的时间更新处理当前业务的时间。
为方便每次计算当前业务与上一次业务的时间间隔,本申请在此还对处理当前业务的时间进行更新,其可以是根据时间将和处理上一次业务的时间进行更新的,也可以是根据系统时间直接更新的(也即是,直接记下处理当前业务的系统时间)。
作为一种优选的实施例,在对当前业务处理之后,还包括:
将更新后的当前可用配额与消耗配额的差值作为再次更新后的当前可用配额。
此外,为方便对下一业务进行处理时的判断,本申请中还将上述更新的当前可用配额与处理当前业务所需要的消耗配额的差值作为在此更新后的当前可用配额,也即是对当前可用配额进行在此更新,其更新值为:已有的配额-用掉的配额。
作为一种优选的实施例,确定与当前业务对应的延时时间之后,还包括:
判断延时时间是否大于最大延迟时间;
若不大于最大延迟时间,则进入根据延时时间对当前业务进行延时处理的步骤;
若大于最大延迟时间,则停止对当前业务进行处理,并输出提示信息。
进一步的,申请人为每个业务设置了对应的最大延时时间,在上述计算出的延时时间大于设定的最大延时时间时,表示计算出的延时时间有误或者当前链路对应的参数错误或者当前链路所在的设备异常等,此时输出提示信息以提醒工作人员及时对其进行检查维修等。
作为一种优选的实施例,根据延时时间对当前业务进行延时处理,包括:
启动定时器,并为定时器设置延时时间,以使定时器在延时时间后触发;
在定时器被触发时,对当前业务进行处理。
具体地,本实施例旨在提供一种对业务进行延时处理的具体实现方式,其中,可以是使用定时器实现对延时时间的计时,定时器在延时时间之后触发,此时,对当前业务进行处理。
请参照图2,图2为本申请提供的一种业务处理方法的具体实现流程示意图。在一具体实施例中,本申请中的业务处理方法的实现步骤如下:
步骤一:构建限流对象对应的响应数据结构,其结构包括:限流对象ID(limiting_obj_id)、限流对象类型(limiting_type)、设定限流值(limiting_value)、单个IO的最大延迟时间(max_delay_time)、处理单次限流的时间(单位时间)(interval_time)、每次限流所能分配的配额值(单位配额)(interval_quota)、限流系数(interval_coefficient)、当前可用配额(currently_available_quota)、处理本次限流事件的系统时间(interval_start_time)等其他所需内容;
步骤二:创建任务处理限流对象,并与目标链路建立对应关系;
步骤三:自动生成limiting_obj_id(未创建时默认值为全F的无效值),并与目标链路的某个唯一标识做绑定;
步骤四:根据创建限流对象时的配置填充limiting_type,IOPS、带宽或者二者同时;
步骤五:带宽限流值以MB单位设置,然后转换为4K单位,填充到limiting_value;IOPS原值填入(可设置一最小值进行限制);
步骤六:设置单个业务处理的最大延迟时间max_delay_time,不由用户指定,软件根据实际情况自行设置(例如100微妙);
步骤七:根据当前应用此限流机制的系统,单线程搭载中等负载时所使用的时间,得出单线程处理限流事件1秒内的次数interval_cnt(interval_cnt=1/interval_time)(对于一个最佳的限流行为,处理一次的时间大约在100微妙左右,所以interval_cnt的值在10000次左右);
步骤八:整除处理:当limiting_value小于10000时,将interval_cnt设置为与limiting_value相等;当limiting_value大于10000且是250的整数倍时,将interval_cnt设置为10000;当limiting_value大于10000但不是250的整数倍时,将interval_cnt依旧设置为10000,并对limiting_value做250的向下取整;
步骤九:根据步骤八的次数interval_cnt,计算出实际处理一次限流事件所需用的时间,填充到interval_time(interval_time=1/interval_cnt);
步骤十:计算系统处理事件能力与限流值的比例关系,也就是得到这样一个等式关系:limiting_value*interval_coefficient=interval_cnt*interval_quota;
步骤十一:将步骤十中计算的interval_coefficient与interval_quota的值填充到当前限流对象的数据结构中;
步骤十二:填充currently_available_quota,初始创建于interval_quota相等;
需要说明的是,步骤一至步骤十二完成了对限流对象的创建,步骤十三至步骤二十六为对业务进行处理时的步骤。
步骤十三:更新处理限流事件的系统时间interval_start_time(微秒级别);
步骤十四:开始处理实际业务,根据当前链路是否有关联限流对象,以及所关联的限流对象id是否有效判断当前是否支持限流;
步骤十五:若不支持,直接跳过,业务继续向下进行;若支持,便开始计算当前这条业务需延迟的时间;
步骤十六:计算当前业务时间与处理上一次业务的间隔时间,time_diff=current_time(当前系统时间)-interval_start_time;
步骤十七:计算业务权重io_weight,若限流类型为IOPS,则io_weight=1,若限流类型为带宽,则io_weight=当前业务包大小/4K;
步骤十八:由步骤十与步骤十七所得各参数,计算单个业务所需消耗的配额expend_quota=interval_coefficient*io_weight,currently_available_quota为当前可用配额;
步骤十九:当time_diff大于interval_time时,补充配额,计算currently_available_quota=time_diff/interval_time*interval_quota+currently_available_quota;(相同的,此处还需更新时间:interval_start_time=time_diff/interval_time*interval_time+interval_start_time)
步骤二十:若expend_quota小于currently_available_quota,则表示当前业务不需延时,将delay_time设置为0,否则根据配额差计算延迟时间:delay_time=(currently_available_quota-expend_quota)/interval_quota*interval_time+interval_time;
步骤二十一:当time_diff小于interval_time时,不需补充配额,此时若expend_quota小于currently_available_quota,则表示当前业务不需延时,将delay_time设置为0,否则根据配额差计算延迟时间:delay_time=(currently_available_quota-expend_quota)/interval_quota*interval_time+(interval_time-time_diff);
步骤二十二:若限流类型同时设置了IOPS与带宽,这时会得出两个delay_time,此时取两者最大值;
步骤二十三:根据步骤二十、步骤二十一、步骤二十二得出最终的延迟时间delay_time,若delay_time等于0,则证明当前业务不需延时,继续向下处理,若delay_time大于设置的最大延迟值max_delay_time,则报错,并将当前业务停止;
步骤二十四:delay_time大于0且小于max_delay_time时,启动一高精度定时器,设置延迟时间为delay_time,对当前业务进行延时处理,待到达等待时间,业务在继续向下处理;
步骤二十五:更新限流对象中当前可用配额值与当前时间值:currently_available_quota=currently_available_quota-expend_quota,interval_start_time=current_time;
步骤二十六:继续处理下一个业务,重复执行步骤十四到步骤二十三,如此往复。
综上,本申请中的业务处理方法,可以对当前业务所在的链路进行判断,并在其支持限流时,对当前业务进行延时处理,以保证对业务处理的稳定性,避免突发高峰流量带来的影响,进而可以提升设备的安定性,防止达到设备中模块或节点的流量瓶颈。
为解决上述技术问题,本申请还提供了一种业务处理系统,请参照图3,图3为本申请提供的一种业务处理系统的结构框图,该系统应用于处理器,包括:
第一判断单元31,用于对当前链路上的当前业务进行处理时,判断当前链路是否为目标链路;
第一执行单元32,用于在当前链路为目标链路时,判定当前链路支持限流,并确定与当前业务对应的延时时间,并根据延时时间对当前业务进行延时处理;
第二执行单元33,用于在当前链路不是所述目标链路时,对当前业务直接进行处理。
对于业务处理系统的介绍请参照上述实施例,本申请在此不再赘述。
为解决上述技术问题,本申请还提供了一种业务处理装置,请参照图4,图4为本申请提供的一种业务处理装置的结构框图,该装置包括:
存储器41,用于存储计算机程序;
处理器42,用于在存储计算机程序时,实现如上述的业务处理方法的步骤。
对于业务处理装置的介绍请参照上述实施例,本申请在此不再赘述。
为解决上述技术问题,本申请还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的业务处理方法的步骤。对于计算机可读存储介质的介绍请参照上述实施例,本申请在此不再赘述。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其他实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (13)
1.一种业务处理方法,其特征在于,应用于处理器,包括:
对当前链路上的当前业务进行处理时,判断所述当前链路是否为目标链路;
若为所述目标链路,则判定所述当前链路支持限流,并确定与所述当前业务对应的延时时间,并根据所述延时时间对所述当前业务进行延时处理;
否则,对所述当前业务直接进行处理;
还包括:
预先创建限流对象,并将所述限流对象与所述目标链路关联;
判断所述当前链路是否为目标链路,包括:
判断所述当前链路是否关联所述限流对象;
若关联所述限流对象,则判定所述当前链路为所述目标链路;
若未关联所述限流对象,则判定所述当前链路不是所述目标链路;
所述限流对象的参数包括限流对象ID,判断所述当前链路是否关联所述限流对象,包括:
判断所述当前链路对应的限流对象ID是否有效;
若有效,则判定所述当前链路关联所述限流对象;
若无效,则判定所述当前链路未关联所述限流对象;
确定与所述当前业务对应的延时时间,包括:
计算处理所述当前业务所需要消耗的消耗配额;
判断所述消耗配额是否大于当前可用配额;
若不大于,则确定所述延时时间为0;
若大于,则根据所述消耗配额与所述当前可用配额的差值计算所述延时时间。
2.如权利要求1所述的业务处理方法,其特征在于,所述目标链路支持限流时的限流对象包括IOPS和/或带宽时,还包括:
在所述限流对象为IOPS时,将所述当前业务的第一权重设为1;
在所述限流对象为带宽时,计算所述当前业务的第二权重,所述第二权重=所述当前业务的数据量/4K;
计算处理所述当前业务所需要消耗的消耗配额,包括:
根据所述限流对象、所述第一权重及所述第二权重计算处理所述当前业务所需要消耗的消耗配额。
3.如权利要求2所述的业务处理方法,其特征在于,所述目标链路支持限流时的限流对象包括IOPS和带宽时;
根据所述消耗配额与所述当前可用配额的差值计算所述延时时间,包括:
根据IOPS对应的消耗配额与所述当前可用配额的差值计算第一延时时间;
根据带宽对应的消耗配额与所述当前可用配额的差值计算第二延时时间;
将所述第一延时时间与所述第二延时时间中的较大值作为所述延时时间。
4.如权利要求1所述的业务处理方法,其特征在于,判断所述消耗配额是否大于所述当前可用配额之前,还包括:
计算处理所述当前业务与处理上一次业务之间的时间间隔;
判断所述时间间隔是否大于单位时间,所述单位时间为所述处理器处理单次业务所需要的时间;
若不大于所述单位时间,则判定不需要补充配额,并直接进入判断所述消耗配额是否大于所述当前可用配额的步骤。
5.如权利要求4所述的业务处理方法,其特征在于,在判定所述时间间隔大于所述单位时间之后,还包括:
根据所述时间间隔、所述单位时间及单位配额为所述目标链路分配补充配额,所述单位配额为所述处理器处理单次业务所能分配的配额;
将所述补充配额与所述当前可用配额的和值作为更新后的当前可用配额;
判断所述消耗配额是否大于所述当前可用配额,包括:
判断所述消耗配额是否大于更新后的所述当前可用配额。
6.如权利要求5所述的业务处理方法,其特征在于,将所述补充配额与所述当前可用配额的和值作为更新后的当前可用配额,包括:
将所述补充配额、所述当前可用配额及预设配额的和值作为更新后的所述当前可用配额。
7.如权利要求5所述的业务处理方法,其特征在于,判断所述消耗配额是否大于更新后的所述当前可用配额之前,还包括:
根据所述时间间隔及处理上一次业务的时间更新处理所述当前业务的时间。
8.如权利要求7所述的业务处理方法,其特征在于,在对所述当前业务处理之后,还包括:
将更新后的所述当前可用配额与所述消耗配额的差值作为再次更新后的当前可用配额。
9.如权利要求1-8任一项所述的业务处理方法,其特征在于,确定与所述当前业务对应的延时时间之后,还包括:
判断所述延时时间是否大于最大延迟时间;
若不大于所述最大延迟时间,则进入根据所述延时时间对所述当前业务进行延时处理的步骤;
若大于所述最大延迟时间,则停止对所述当前业务进行处理,并输出提示信息。
10.如权利要求1-8任一项所述的业务处理方法,其特征在于,根据所述延时时间对所述当前业务进行延时处理,包括:
启动定时器,并为所述定时器设置所述延时时间,以使所述定时器在所述延时时间后触发;
在所述定时器被触发时,对所述当前业务进行处理。
11.一种业务处理系统,其特征在于,应用于处理器,包括:
第一判断单元,用于对当前链路上的当前业务进行处理时,判断所述当前链路是否为目标链路;
第一执行单元,用于在所述当前链路为所述目标链路时,判定所述当前链路支持限流,并确定与所述当前业务对应的延时时间,并根据所述延时时间对所述当前业务进行延时处理;
第二执行单元,用于在所述当前链路不是所述目标链路时,对所述当前业务直接进行处理;
所述业务处理系统,还用于:预先创建限流对象,并将所述限流对象与所述目标链路关联;
所述第一判断单元,具体用于判断所述当前链路是否关联所述限流对象;若关联所述限流对象,则判定所述当前链路为所述目标链路;若未关联所述限流对象,则判定所述当前链路不是所述目标链路;
所述限流对象的参数包括限流对象ID,所述第一判断单元具体用于:判断所述当前链路对应的限流对象ID是否有效;若有效,则判定所述当前链路关联所述限流对象;若无效,则判定所述当前链路未关联所述限流对象;
确定与所述当前业务对应的延时时间,包括:计算处理所述当前业务所需要消耗的消耗配额;判断所述消耗配额是否大于当前可用配额;若不大于,则确定所述延时时间为0;若大于,则根据所述消耗配额与所述当前可用配额的差值计算所述延时时间。
12.一种业务处理装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于在存储计算机程序时,实现如权利要求1-10任一项所述的业务处理方法的步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-10任一项所述的业务处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211129122.1A CN115514713B (zh) | 2022-09-16 | 2022-09-16 | 一种业务处理方法、系统、装置及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211129122.1A CN115514713B (zh) | 2022-09-16 | 2022-09-16 | 一种业务处理方法、系统、装置及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115514713A CN115514713A (zh) | 2022-12-23 |
CN115514713B true CN115514713B (zh) | 2023-07-25 |
Family
ID=84504436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211129122.1A Active CN115514713B (zh) | 2022-09-16 | 2022-09-16 | 一种业务处理方法、系统、装置及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115514713B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110674102A (zh) * | 2019-09-29 | 2020-01-10 | 北京浪潮数据技术有限公司 | 分布式文件系统目录配额方法、系统、装置及存储介质 |
WO2021057607A1 (zh) * | 2019-09-29 | 2021-04-01 | 北京金山云网络技术有限公司 | 一种节点限速的方法、装置、电子设备及存储介质 |
CN114553784A (zh) * | 2022-01-25 | 2022-05-27 | 阿里巴巴(中国)有限公司 | 限流处理方法及装置 |
-
2022
- 2022-09-16 CN CN202211129122.1A patent/CN115514713B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110674102A (zh) * | 2019-09-29 | 2020-01-10 | 北京浪潮数据技术有限公司 | 分布式文件系统目录配额方法、系统、装置及存储介质 |
WO2021057607A1 (zh) * | 2019-09-29 | 2021-04-01 | 北京金山云网络技术有限公司 | 一种节点限速的方法、装置、电子设备及存储介质 |
CN114553784A (zh) * | 2022-01-25 | 2022-05-27 | 阿里巴巴(中国)有限公司 | 限流处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115514713A (zh) | 2022-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6898649B2 (en) | Arbiter for queue management system for allocating bus mastership as a percentage of total bus time | |
CN109408590B (zh) | 分布式数据库的扩容方法、装置、设备及存储介质 | |
CN108874688A (zh) | 一种报文数据缓存方法及装置 | |
CN111104227A (zh) | 一种K8s平台的资源控制方法、装置及相关组件 | |
CN115514713B (zh) | 一种业务处理方法、系统、装置及可读存储介质 | |
CN113094183A (zh) | Ai训练平台的训练任务创建方法、装置、系统及介质 | |
CN112181663A (zh) | 一种内存调度方法、装置及计算机设备 | |
CN111400035A (zh) | 一种显存分配方法、装置、电子设备及存储介质 | |
CN109491611B (zh) | 一种元数据落盘方法、装置及设备 | |
CN110209548B (zh) | 服务控制方法、系统、电子设备及计算机可读存储介质 | |
CN106775889B (zh) | 利用对象池实现Flash播放器资源加载的方法及系统 | |
CN106357557A (zh) | 一种消息处理方法及装置 | |
CN106776393B (zh) | 一种无中断的串口数据接收方法和装置 | |
CN115437572A (zh) | 一种数据落盘方法、装置、设备及介质 | |
CN115858668A (zh) | 分布式事务处理方法、装置、电子装置及存储介质 | |
CN112463027B (zh) | 一种i/o处理方法、系统、设备及计算机可读存储介质 | |
CN111930675B (zh) | 一种数据传输管理方法、系统及装置 | |
CN109582460A (zh) | 一种Redis内存数据的淘汰方法和装置 | |
CN110928944A (zh) | 一种数据处理方法及其装置 | |
CN116955030B (zh) | 测试计划分配方法及其系统、电子设备、存储介质 | |
CN115174289B (zh) | 日志数据的存储方法、装置、存储介质及电子装置 | |
CN113867969A (zh) | 一种内存分块方法、装置、电子设备及存储介质 | |
CN114519051A (zh) | 序列化方法、反序列化方法以及相关装置 | |
CN116225997A (zh) | 一种数据加速计算方法、装置、设备及存储介质 | |
CN117573278A (zh) | Pod调度方法、装置及存储介质 |
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 |