数据流控方法、装置、设备与计算机可读存储介质制造方法及图纸

技术编号:34375997 阅读:17 留言:0更新日期:2022-07-31 13:31
本发明专利技术公开了一种数据流控方法、装置、设备与计算机可读存储介质,属于数据推送技术领域。本发明专利技术数据流控方法包括:采集各数据通道的数据积压值;根据所述数据积压值和消息发送线程池大小,计算各个数据通道的流控值;根据所述各个数据通道的流控值大小进行数据下发。本发明专利技术通过通过采集各数据通道的数据积压值,根据数据积压值和消息发送线程池大小,计算得到各个数据通道的流控值,也即得到各个数据通道所需要的线程数,再根据各个数据通道的流控值进行数据下发,以对数据发送线程池的资源进行调配,实现自动对各个通道的生产速度进行动态的速度控制,确保资源利用最大化。确保资源利用最大化。确保资源利用最大化。

Data flow control method, device, equipment and computer readable storage medium

【技术实现步骤摘要】
数据流控方法、装置、设备与计算机可读存储介质


[0001]本专利技术涉及数据推送
,尤其涉及一种数据流控方法、装置、设备与计算机可读存储介质。

技术介绍

[0002]在数据传输或交换中,数据流的数据流量控制一直是非常关键的技术问题。
[0003]目前,推送平台的数据流控方案通常是通过google的guava(单节点)或redis(分布式)中的令牌桶算法实现的,令牌桶是一个存放固定容量令牌的桶,按照固定的速率往桶里添加令牌,只有拿到令牌的线程才会进行数据推送。但这种方式需要在初始化时设置令牌桶的容量,缺乏可变性,且在多通道的情况下无法灵活进行资源分配,因此存在资源分配效率低的问题。

技术实现思路

[0004]本专利技术的主要目的在于提供一种数据流控方法、装置、设备与计算机可读存储介质,旨在解决如何提高资源的利用率的问题。
[0005]为实现上述目的,本专利技术提供一种数据流控方法,所述数据流控方法包括以下步骤:
[0006]采集各数据通道的数据积压值;
[0007]根据所述数据积压值和消息发送线程池大小,计算各个数据通道的流控值;
[0008]根据所述各个数据通道的流控值大小进行数据下发。
[0009]可选地,所述根据所述数据积压值和消息发送线程池大小,计算各个数据通道的流控值的步骤包括:
[0010]获取所述各数据通道的目标比例;其中,所述目标比例包括:积压权重比例和/或异常请求过滤比例;
[0011]基于所述目标比例、所述数据积压值和所述消息发送线程池大小,计算各个数据通道的流控值。
[0012]可选地,所述异常请求过滤比例的获取步骤包括:
[0013]获取下游系统的流控触发次数、数据采集时间间隔、各数据通道初始化流控值;
[0014]根据所述流控触发次数、所述数据采集时间间隔和所述各数据通道初始化流控值,计算所述异常请求过滤比例。
[0015]可选地,所述获取下游系统的流控触发次数的步骤包括:
[0016]判断所述下游系统接口的运行指标是否满足流控触发条件;
[0017]若满足所述流控触发条件,则触发流控,并计数一次;
[0018]统计预设时间内的流控触发次数。
[0019]可选地,所述根据所述流控触发次数、所述数据采集时间间隔和所述各数据通道初始化流控值,计算所述异常请求过滤比例的步骤包括:
[0020]获取流控放大比率;
[0021]基于所述流控放大比率、所述流控触发次数、所述数据采集时间间隔、所述各数据通道初始化流控值,计算下游异常请求过滤比例。
[0022]可选地,所述计算各个数据通道的流控值的步骤之后,所述方法还包括:
[0023]判断所述各个数据通道的流控值是否低于预设阈值;
[0024]若所述流控值低于所述预设阈值,则基于所述预设阈值调整各个数据通道的流控值。
[0025]可选地,所述根据所述各个数据通道的流控值大小进行数据下发的步骤包括:
[0026]按照预设的时间间隔,循环执行所述采集各数据通道的数据积压值,根据所述数据积压值和消息发送线程池大小,计算各个数据通道的流控值的步骤;
[0027]根据所述预设的时间间隔计算得到的流控值,调整所述消息发送线程池的线程分配以进行数据下发。
[0028]此外,为实现上述目的,本专利技术还提供一种数据流控装置,所述装置包括:
[0029]通道采集模块,用于采集各数据通道的数据积压值;
[0030]流控计算模块,用于根据所述数据积压值和消息发送线程池大小,计算各个数据通道的流控值;
[0031]数据下发模块,用于根据所述各个数据通道的流控值大小进行数据下发。
[0032]可选地,所述流控计算模块还用于:
[0033]获取所述各数据通道的目标比例;其中,所述目标比例包括:积压权重比例和/或异常请求过滤比例;
[0034]基于所述目标比例、所述数据积压值和所述消息发送线程池大小,计算各个数据通道的流控值。
[0035]可选地,所述流控计算模块还用于:
[0036]获取下游系统的流控触发次数、数据采集时间间隔、各数据通道初始化流控值;
[0037]根据所述流控触发次数、所述数据采集时间间隔和所述各数据通道初始化流控值,计算所述异常请求过滤比例。
[0038]可选地,所述流控计算模块还用于:
[0039]判断所述下游系统接口的运行指标是否满足流控触发条件;
[0040]若满足所述流控触发条件,则触发流控,并计数一次;
[0041]统计预设时间内的流控触发次数。
[0042]可选地,所述流控计算模块还用于:
[0043]获取流控放大比率;
[0044]基于所述流控放大比率、所述流控触发次数、所述数据采集时间间隔、所述各数据通道初始化流控值,计算下游异常请求过滤比例。
[0045]可选地,所述流控计算模块还用于:
[0046]判断所述各个数据通道的流控值是否低于预设阈值;
[0047]若所述流控值低于所述预设阈值,则基于所述预设阈值调整各个数据通道的流控值。
[0048]可选地,所述数据下发模块还用于:
[0049]按照预设的时间间隔,循环执行所述采集各数据通道的数据积压值,根据所述数据积压值和消息发送线程池大小,计算各个数据通道的流控值的步骤;
[0050]根据所述预设的时间间隔计算得到的流控值,调整所述消息发送线程池的线程分配以进行数据下发。
[0051]此外,为实现上述目的,本专利技术还提供一种数据流控设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据流控程序,所述数据流控程序配置为实现如上所述的数据流控方法的步骤。
[0052]此外,为实现上述目的,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据流控程序,所述数据流控程序被处理器执行时实现如上所述的数据流控方法的步骤。
[0053]本专利技术实施例提出的数据流控方法、装置、设备与计算机可读存储介质,通过采集各数据通道的数据积压值,根据数据积压值和消息发送线程池大小,计算得到各个数据通道的流控值,也即得到各个数据通道所需要的线程数,再根据各个数据通道的流控值进行数据下发,以对数据发送线程池的资源进行调配,实现自动对各个通道的生产速度进行动态的速度控制,确保资源利用最大化。
附图说明
[0054]图1是本专利技术实施例方案涉及的硬件运行环境的数据流控设备的结构示意图;
[0055]图2为本专利技术一种数据流控方法第一实施例的流程示意图;
[0056]图3为本专利技术数据流控方法一实施例的总体流程图;
[0057]图4为本专利技术数据流控方法第二实施例计算流控值的细化步骤示意图;
[0058]图5为本专利技术数据流控方法第三实施例获取流控触发次数的细化步骤示意图;
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据流控方法,其特征在于,所述数据流控方法包括以下步骤:采集各数据通道的数据积压值;根据所述数据积压值和消息发送线程池大小,计算各个数据通道的流控值,所述流控值为对数据通道分配的线程数;根据所述各个数据通道的流控值进行数据下发。2.如权利要求1所述的数据流控方法,其特征在于,所述根据所述数据积压值和消息发送线程池大小,计算各个数据通道的流控值的步骤包括:获取所述各数据通道的目标比例;其中,所述目标比例包括:积压权重比例和/或异常请求过滤比例;基于所述目标比例、所述数据积压值和所述消息发送线程池大小,计算各个数据通道的流控值。3.如权利要求2所述的数据流控方法,其特征在于,所述异常请求过滤比例的获取步骤包括:获取下游系统的流控触发次数、数据采集时间间隔、各数据通道初始化流控值;根据所述流控触发次数、所述数据采集时间间隔和所述各数据通道初始化流控值,计算所述异常请求过滤比例。4.如权利要求3所述的数据流控方法,其特征在于,所述获取下游系统的流控触发次数的步骤包括:判断所述下游系统的运行指标是否满足流控触发条件;若满足所述流控触发条件,则触发流控,并计数一次;统计预设时间内的流控触发次数。5.如权利要求3所述的数据流控方法,其特征在于,所述根据所述流控触发次数、所述数据采集时间间隔和所述各数据通道初始化流控值,计算所述异常请求过滤比例的步骤包括:获取流控放大比率;基于所述流控放大比率、所述流控触发次数、所述数据采集时间间隔、所述各数据通道初始化...

【专利技术属性】
技术研发人员:王佶堃
申请(专利权)人:中国移动通信集团有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1