一种流量控制方法和装置
技术领域
本申请涉及计算机技术,特别涉及一种流量控制方法和装置。
背景技术
随着网络技术的发展,不断使得人们的生活越来越方便,例如,用户可以在网络上进行缴费(如,缴纳水、电、燃气等生活费用)、转账、还款等各种业务操作。对应的,上述业务操作可以通过业务平台执行,业务平台可以接收用户的业务请求(如上述的缴费请求),并与所请求的业务对应的业务机构(如,燃气收费企业)进行通信以完成用户的业务。
当前,业务平台处理的业务越来越多,尤其是在高峰时段将接收到海量的用户业务请求,由于各业务机构的性能差异,可以通过阈值控制的方式,在业务量超过阈值时,中断该机构的业务,以保证机构系统的稳定性和安全性,但是这样将完全阻断了用户正常访问业务的诉求,也降低了业务的处理效率。
发明内容
有鉴于此,本申请提供一种流量控制方法和装置,以保障业务的可持续运行。
具体地,本申请是通过如下技术方案实现的:
第一方面,提供一种流量控制方法,所述流量控制方法用于对业务平台中的某一业务接口的流量进行调整,所述方法包括:
获取所述业务接口的接口性能实际值,并根据数据库中存储的业务性能模型计算得到所述业务接口的接口性能评估值,所述业务性能模型是根据业务平台的历史运行数据进行建模得到;根据所述接口性能实际值和接口性能评估值,计算对所述业务接口的并发数的调整幅度取值;
根据所述调整幅度取值,对所述业务接口的流量进行调整。
第二方面,提供一种流量控制装置,所述流量控制装置用于对业务平台中的某一业务接口的流量进行调整,所述装置包括:
幅度计算模块,用于获取所述业务接口的接口性能实际值,并根据数据库中存储的业务性能模型计算得到所述业务接口的接口性能评估值,所述业务性能模型是根据业务平台的历史运行数据进行建模得到;根据所述接口性能实际值和接口性能评估值,计算对所述业务接口的并发数的调整幅度取值;
流量调整模块,用于根据调整幅度取值对所述业务接口的流量进行调整。
本申请提供的流量控制方法和装置,通过根据接口性能实际值和由模型得到的接口性能评估值,计算接口流量的调整幅度,使得对接口流量的调整可以保障业务的可持续运行。
附图说明
图1是本申请一示例性实施例示出的一个业务平台的示意图;
图2是本申请一示例性实施例示出的业务平台运行结构示意图;
图3是本申请一示例性实施例示出的一种流量控制方法的流程图;
图4是本申请一示例性实施例示出的另一种流量控制方法的流程图;
图5是本申请一示例性实施例示出的一种流量控制装置的结构图;
图6是本申请一示例性实施例示出的另一种流量控制装置的结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
图1示例了一个处理生活缴费业务的业务平台11,该业务平台11可以与很多的外部机构进行交互,如机构12(例如,银行)、机构13(例如,上海收水费企业)、机构14(例如,北京收燃气费企业)等,用于处理对应该机构的业务,例如,与机构12交互以处理转账业务,与机构13交互以处理水费缴纳业务,与机构14交互以处理燃气费缴纳业务。
对于每个外部机构,业务平台都可以通过至少一个业务接口与该机构进行通信,如图1中所示例的接口15a、接口15b、接口15c等;例如,业务平台11在接收到水费缴纳的业务请求时,可以调用接口15b开始与机构13通信。同一个业务接口可以处理多种业务,同一个业务也可能通过多个业务接口来处理。
本公开实施例提供的方法,可以用于对各个业务接口的流量进行动态调整,以防止业务接口的流量过大时系统故障甚至瘫痪,对于每个业务接口都可以使用本公开的方法进行流量调整,该流量控制方法的目的是,动态调整业务接口的流量,在高峰拥堵时减小流量,在空闲时提高流量,保证业务的可持续运行。
为了实现对业务接口的流量调整,本公开的例子中根据业务平台的运行数据建立性能模型,对业务接口的性能进行评估,得到接口性能评估值,并将该接口性能评估值应用到流量调整的处理方法中。
如图2所示,可以在业务平台运行的线上系统设置了“流量控制装置”21,该装置可以用于对业务平台的业务接口的流量进行调整。并且,在线下系统还可以通过大数据建模系统22根据采集的业务平台运行数据进行大数据建模,得到对应各个机构的业务接口的业务性能模型,存储入数据库23中。在后续的流量控制中,流量控制装置21可以利用该接口的业务性能模型计算出接口的性能评估值用于流量控制。
首先结合图3说明大数据建模系统22建立业务接口的业务性能模型的过程:该大数据建模系统22利用采集线上系统的历史运行数据进行建模,以备后续根据建立的模型计算接口的性能评估值,例如,TPS评估值和响应时间评估值。
在步骤301中,采集获取线上系统的运行数据。
例如,结合图2所示,可以通过数据采集模块24采集线上系统的历史运行数据,包括对线上日志及业务性能数据的采集。例如,可以获取业务平台调用外部机构接口的一些日志数据,比如,在某个时间向某个外部机构执行了某类型的业务,外部机构对该业务的响应时间,以及当时的平台CPU消耗等。日志数据中还包括其他类型的参数,不再详述。业务性能数据,例如,平台CPU消耗、或者平台内存消耗等属于平台资源消耗的数据,可以通过快照工具采集、回放。例如,回放线上业务运行时的快照。上述得到的数据可以称为业务平台的运行数据。
在步骤302中,在得到采集的线上数据后,根据预先定义的元数据对这些数据进行清洗,得到后续建模使用的格式化数据集。
例如,本步骤对数据的清洗是从采集的数据中选择出要使用的目标数据,并不是所有的数据都用于建模,数据清洗仍然可以通过数据采集模块24执行。如下的表1示例了部分元数据:
表1元数据格式
通过本步骤的数据清洗,最终得到的格式化数据即为上述表1的元数据对应的数据集,业务模型由上述表1中的部分必要元数据构成,例如并发数、TPS、接口响应时间等。
在步骤303中,对处理后的数据集进行分类计算、去噪声等处理,得到各业务接口训练数据集,不同业务接口对应的数据集分别存储在不同的数据文件中。
例如,经过分类、去噪处理之后,各业务接口生成对应的数据文件列表,格式如“BizType_SubBizType_ChargeInst_ChargeOffInst_Date.csv”。单个数据文件中的元数据如下表2所示,是分类后的某业务接口一天的数据文件清单,其中包括了多种业务,如还款(HK)、缴费(JF)等,这些业务都是通过该业务接口进行处理。
表2数据文件列表
在上述表2中,其中每个数据文件都是经过处理的各业务模型对应的数据,并作为决策树算法的训练数据集,每个数据集对应的元数据如表3所示:
表3用于决策树算法的元数据
示例性的,上述表2中的其中一个数据文件,可以如下表4所示,可以看到,表4中的每行数据代表了某一个时间片内业务的统计信息,其中时间片可以为15分钟,也可以为1分钟,甚至秒级,视具体业务量而定:
表4数据文件
在步骤304中,可以根据性能数据训练集进行业务接口的性能建模,得到业务接口的业务性能模型。
例如,本步骤的业务性能模型的建立,可以是图2中的大数据建模系统22执行,该大数据建模系统也可以称为建模模块。可以通过决策树算法建立周维度的业务性能模型W;或者,随着时间的更迭,根据周维度模型W(W1/W2/...),并利用余弦相似度算法输出月度参考周维度模型W',以使得性能评估更加准确。
通过上述过程得到各业务接口的性能模型后,将性能模型存储到数据库DB。在后续可以根据该业务性能模型以及业务接口参数的输入,得到该业务接口对应的性能评估值。图4示例了在上述大数据建模得到业务性能模型的基础上,线上系统的流量控制装置执行的基于性能评估进行的流量调整方法,该方法可以是流量控制装置在接收到对业务接口的调用时执行,可以包括:
在步骤401中,获取业务接口的接口性能实际值,并根据数据库中存储的业务性能模型计算得到对应该业务接口的接口性能评估值。
例如,流量控制装置设置在线上系统,可以监测到各个业务接口的前一次调用的接口性能实际值,比如,以某一业务接口为例,可以包括:并发数实际值、TPS实际值、接口响应时间实际值。
并且,流量控制装置还可以由数据库中存储的业务性能模型计算该业务接口的性能评估值,包括:TPS评估值和响应时间评估值。接口性能评估值,可以表征该接口的性能,评估值可以用于作为接口承受能力的衡量。
该性能评估值的计算,可以包括:流量控制装置获取当前执行的业务参数,如业务类型、子业务类型、出帐机构、销帐机构、当前时间等参数,从数据库获取给定业务模型(所谓业务模型即业务类型、子业务类型、出帐机构、销帐机构组合起来可以唯一锁定一个业务)的性能模型,并将上述参数作为输入,输出则为某一给定业务的性能评估值。
在步骤402中,根据接口性能实际值和接口性能评估值,计算对业务接口的并发数的调整幅度取值。
如前所述的,接口性能实际值,其实是前一次接口调用的性能实际值,本步骤根据性能实际值,结合业务性能模型,预测并控制本次调用的流量。例如,首先,可以根据接口性能实际值和接口性能评估值,计算一些对应某个接口性能参数的权重,如下所示:
TPS权重W1(TPS实际值-TPS评估值)/TPS评估值*100;
响应时间权重W2=(响应时间实际值-响应时间评估值)/响应时间评估值*100;
接着,在计算上述各个权重的基础上,可以计算并发数的调整幅度取值:
例如,当接口性能实际值高于接口性能评估值时,权重是大于0的正数,此时计算的并发数调整幅度是降低幅度;当接口性能实际值低于接口性能评估值时,权重是小于0的负数,此时计算的并发数调整幅度是增加幅度。
上述的计算公式是示例性的处理方式,例如,
中除以2可以是实际调测的结果,并且可以根据调测的变化进行更新,具体实施中并不局限于此。
例如,考虑到有些业务接口对应处理的业务具有较高的实时性要求,如,充值业务、信用卡还款业务等,对于这些业务可以设置该接口对应的处理业务的实时性权重w0。该实时性权重可以用于衡量业务的实时性要求,比如,可以将w0设置不大于10%,并且可以随着业务对实时性要求的提高而增大。例如,“实时性权重”可以给高优先级、实时性要求比较高的业务在拥堵时间段,根据实际情况开通绿色通道,人为加大带宽,比如充值业务、信用卡还款业务,反之其他业务降低带宽。
当结合实时性权重w0时,调整幅度值可以按照如下公式计算:
又例如,为了防止流量调整的幅度过大对业务平台造成影响,使得业务平台出现故障,本实施例还可以控制调整幅度取值在预设的幅度阈值范围内。比如,可以设置并发数的调整幅度在X%的范围内。
在步骤403中,根据调整幅度取值,对业务接口的流量进行调整。
上述的流量控制方法,通过根据接口性能实际值和评估值,计算对并发数的调整幅度,可以实现动态流控,在高峰拥堵时减小业务接口对应的业务请求量,反之增加业务请求量,从而保证业务的可持续运行。并且,该方法可以由流量控制装置在每次接收到业务接口的调用时执行,从而动态调整业务接口的流量。
此外,本公开的例子中,还可以设置流控开关,用于设置流控功能的开启或关闭,以控制是否对业务平台采取本公开的流量控制方法。结合图2所示,流控开关可以是设置在分布式资源管理系统(Distributed Resource Management,简称DRM)上,线上系统的流量控制装置可以在执行图4所示的流程之前,先判断流控开关的状态,如果流控开关为关闭则不作处理,按照常规方式进行即可;如果流控开关的设置状态为打开,则通过业务性能模型计算需要调整的幅度。其中,流控开关的设置状态以及上面提到的实时性权重,均可以通过分布式资源管理系统(简称DRM)进行控制与读取,并实时生效。开关及配置信息的读取方式包括但不局限于使用DRM进行控制。
在业务平台的运行中,图4所示的流程可以是不断执行的,比如,线下的大数据建模系统会持续不断的采集线上的运行数据,并建立某一时间片内的性能模型;同时,线上系统的流量控制装置持续通过此模型计算性能评估值,计算并控制接口并发数调整幅度,最终实现对业务接口的动态流控。
结合图2所示,在图2所示的流量控制系统中,可以由数据采集模块24进行对线上系统的历史运行数据的采集,包括日志采集、性能快照采集和数据的清洗,可以参见步骤301和步骤302的描述。而大数据建模系统22可以根据数据采集模块24得到的数据进行建模,得到业务性能模型,存储至数据库23中。在线上系统设置了图2中的流量控制装置,用于控制线上执行的业务流量,对业务平台的业务接口流量进行幅度调整。
图5提供了上述的流量控制装置的结构,该装置用于实现图4所示的流量控制方法,如图5所示,该装置可以包括:幅度计算模块51和流量调整模块52。
幅度计算模块51,用于获取所述业务接口的接口性能实际值,并根据数据库中存储的业务性能模型计算得到所述业务接口的接口性能评估值,所述业务性能模型是根据业务平台的历史运行数据进行建模得到;根据所述接口性能实际值和接口性能评估值,计算对所述业务接口的并发数的调整幅度取值;
流量调整模块52,用于根据调整幅度取值对业务接口的流量进行调整。
进一步的,
幅度计算模块51,用于获取并发数实际值、TPS实际值、TPS评估值、响应时间实际值和响应时间评估值;根据TPS实际值和TPS评估值,计算TPS权重;根据响应时间实际值和响应时间评估值,计算响应时间权重;根据业务接口的当前并发数、TPS权重和响应时间权重,计算得到并发数的调整幅度取值。
进一步的,
幅度计算模块51,还用于获取所述业务接口对应的处理业务的实时性权重,所述实时性权重随处理业务的实时性要求的提高而增大;并在计算所述调整幅度取值时,用于根据所述业务接口的当前并发数、TPS权重、响应时间权重和实时性权重,计算得到所述调整幅度取值。
进一步的,幅度计算模块51,还用于控制所述调整幅度取值在预设的幅度阈值范围内。
参见图6,该装置还可以包括:开关判断模块53,用于判断流控开关的设置状态,当设置状态为打开时,指示所述幅度计算模块由数据库中获取对应所述业务接口的接口性能评估值。结合图2所示,在具体实现中,可以在分布式资源管理系统DRM,提供在线配置流控开关的功能,并实时生效。DRM上的流控开关25,可以是一个DRM上的选项,通过对该选项控制流控功能的开启或关闭,当选择开启时,相当于该流控开关的状态是打开,当选择关闭时相当于该流控开关的状态是关闭。而开关判断模块53可以获取到流控功能是否打开,并在流控功能打开时启动流控幅度的计算和流量调整。
本实施例的流量控制装置,通过根据接口性能实际值和评估值,计算对并发数的调整幅度,可以实现动态流控,在高峰拥堵时减小业务接口对应的业务请求量,反之增加业务请求量,从而保证业务的可持续运行。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。