本申请涉及一种业务数据流的处理方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:获取业务数据流;根据业务数据流对应的业务场景,采用与业务场景对应的预设限流策略对业务数据流进行限流,得到限流后的目标数据流;对目标数据流的业务权限进行校验,响应于业务权限校验通过的结果,将目标数据流发送至业务系统进行处理,并通过业务系统生成对目标数据流的处理结果;其中,当检测到业务系统的业务响应参数大于业务熔断阈值和/或业务系统的调用状态参数大于调用熔断阈值时,对业务系统进行熔断处理,并将业务系统待处理的目标数据流返回。采用本方法能够从系统前后端对数据流进行多层次限流,从而提高业务数据流的处理效率。的处理效率。的处理效率。
【技术实现步骤摘要】
业务数据流的处理方法、装置、计算机设备、存储介质
[0001]本申请涉及计算机应用
,特别是涉及一种业务数据流的处理方法、装置、计算机设备、存储介质和计算机程序产品。
技术介绍
[0002]在分布式应用中通常会部署有多个级联的业务系统,每个业务系统用于提供不同的应用服务。当业务数据流进入分布式应用时,一般会对业务数据流进行多次拆分,利用远程调用的方式,将每次拆分后的数据流转入对应的业务系统进行处理。然而,在某些业务场景下,譬如秒杀业务场景或抢购业务场景等特定场景下,会存在短时间内涌入分布式应用的业务数据流过多的情况。此时容易导致分布式应用级联故障,因此,需要控制进入分布式应用的业务数据量。
[0003]现阶段常用的处理方式主要包括熔断、限流以及降级这三种。
[0004]其中,限流的目的是通过限制业务系统并发访问数或者限制一个业务系统窗口内允许处理的请求数量以保护业务系统。譬如,在确定达到限制流量的情况下,则对当前请求处理采取对应的拒绝策略(如延迟处理,拒绝处理)对上游服务的请求量进行限制,以保证本服务不被压垮,从而持续提供稳定服务。
[0005]常见的限流算法有:滑动窗口、令牌桶、漏桶等算法。而流量控制一般常见的有两种方式:基于每秒查询率(Queries
‑
per
‑
second,简称QPS)进行控制或基于并发隔离进行控制。
[0006]而熔断是指当前服务提供者无法正常为服务调用者提供服务时,比如请求超时,服务异常等,为了防止整个业务系统出现雪崩效应,暂时将出现故障的接口隔离起来,断绝与外部接口的联系,当触发熔断之后,后续一段时间按内该服务调用者的请求都会直接失败,直到目标服务恢复正常。
[0007]例如C服务依赖D服务,D服务出现问题了,返回很慢,从而可能拖慢C服务里面的所有功能。服务熔断的作用类似于保险丝,当某服务不可用或响应超时的情况时,为了防止整个业务系统出现雪崩,暂时停止对该服务的调用。停止是说当前服务一旦对下游服务进行熔断,当请求到达时,当前服务不再对下游服务进行调用,而是使用设定好的策略直接返回。
[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]业务处理模块,用于对所述目标数据流的业务权限进行校验,响应于所述业务权限校验通过的结果,将所述目标数据流发送至业务系统进行处理,并通过所述业务系统生成对所述目标数据流的处理结果,其中,当检测到所本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种业务数据流的处理方法,其特征在于,所述方法包括:获取业务数据流;根据所述业务数据流对应的业务场景,采用与所述业务场景对应的预设限流策略对所述业务数据流进行限流,得到限流后的目标数据流;对所述目标数据流的业务权限进行校验,响应于所述业务权限校验通过的结果,将所述目标数据流发送至业务系统进行处理,并通过所述业务系统生成对所述目标数据流的处理结果;其中,当检测到所述业务系统的业务响应参数大于业务熔断阈值和/或所述业务系统的调用状态参数大于调用熔断阈值时,对所述业务系统进行熔断处理,并将所述业务系统待处理的目标数据流返回。2.根据权利要求1所述的方法,其特征在于,所述预设限流策略包括以下策略中的任一种或多种:获取所述业务数据流的标识信息,响应于所述标识信息与预设限流标识相匹配的判断结果,对所述业务数据流进行限流;根据对所述业务数据流下发令牌的预设频率以及预设数量,确定当前令牌下发总数量,响应于所述当前令牌下发总数量等于第一限流阈值的比较结果,对未下发令牌的业务数据流进行限流;获取所述业务系统对所述目标数据流的业务响应时间,根据所述业务响应时间控制对所述业务数据流下发令牌的目标频率,通过所述目标频率确定当前令牌下发总数量,响应于所述当前令牌下发总数量等于第二限流阈值的比较结果,对未下发令牌的业务数据流进行限流。3.根据权利要求2所述的方法,其特征在于,所述获取所述业务系统对所述目标数据流的业务响应时间,根据所述业务响应时间控制对所述业务数据流下发令牌的目标频率,包括:获取所述业务系统在预设时间段内对多个所述目标数据流的业务响应时间;根据多个所述业务响应时间确定对每个所述目标数据流的平均业务响应时间;获取所述平均业务响应时间和目标响应时间的比例,采用反比函数对所述比例进行处理得到目标限流比例;按照所述目标限流比例控制对所述业务数据流下发令牌的目标频率。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:获取所述业务系统在所述预设时间段内对所述目标数据流的响应线程数量,将所述响应线程数量和所述平均业务响应时间作为所述业务系统的业务响应参数;当检测到所述响应线程数量大于预设线程阈值并且所...
【专利技术属性】
技术研发人员:吴胜平,唐凯风,舒山,
申请(专利权)人:上海浦东发展银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。