一种流量控制方法及系统的制作方法

文档序号:6523575阅读:136来源:国知局
一种流量控制方法及系统的制作方法
【专利摘要】本发明公开一种流量控制方法及系统,流量控制方法包括:网关接收到客户端应用程序对开放平台的内部应用接口的调用请求;网关获取客户端应用程序或者内部应用接口的流量控制规则;网关检测客户端应用程序或者内部应用接口是否满足所述流量控制规则,如果客户端应用程序或者内部应用接口满足所述流量控制规则,则允许客户端应用程序的所述调用请求,否则拒绝客户端应用程序的所述调用请求。本发明避免同一客户端应用程序过度通过内部应用接口调用内部应用程序,也避免了同一内部应用程序被过度调用。因此减少了系统资源消耗,提高系统稳定性。
【专利说明】一种流量控制方法及系统
【技术领域】
[0001]本发明涉及通信相关【技术领域】,特别是一种流量控制方法及系统。
【背景技术】
[0002]开放平台,用于为客户端提供多种内部应用程序,客户端应用程序通过调用开发平台的应用接口,则能使用开放平台的内部应用程序。
[0003]然而,当大量的客户端应用程序对开放平台的内部应用程序进行调用时,有可能出现如下问题:
[0004]1.同一客户端应用程序对开发平台的内部应用程序进行大量调用,占用了其他客户端应用程序调用开发平台的内部应用程序的资源,造成分配不公;
[0005]2.同一内部应用程序被大量调用,某些内部应用程序是极为消耗系统资源的,如果被过分大量的调用,则容易导致系统出现故障,甚至出现崩溃。

【发明内容】

[0006]基于此,有必要针对现有技术的开发平台未能对客户端应用程序调用内部应用程序进行有效的流量控制,提供一种流量控制方法及系统。
[0007]一种流量控制方法,包括:
[0008]网关接收到客户端应用程序对开放平台的内部应用接口的调用请求;
[0009]网关获取客户端应用程序或者内部应用接口的流量控制规则;
[0010]网关检测客户端应用程序或者内部应用接口是否满足所述流量控制规则,如果客户端应用程序或者内部应用接口满足所述流量控制规则,则允许客户端应用程序的所述调用请求,否则拒绝客户端应用程序的所述调用请求。
[0011]一种流量控制系统,包括:网关,以及设置在网关的:
[0012]调用请求接收模块,用于接收到客户端应用程序对开放平台的内部应用接口的调用请求;
[0013]流量控制规则获取模块,用于获取客户端应用程序或者内部应用接口的流量控制规则;
[0014]流量检测模块,用于检测客户端应用程序或者内部应用接口是否满足所述流量控制规则,如果客户端应用程序或者内部应用接口满足所述流量控制规则,则允许客户端应用程序的所述调用请求,否则拒绝客户端应用程序的所述调用请求。
[0015]本发明通过对客户端应用程序或者开放平台的内部应用接口建立流量控制规则,仅在满足流量控制规则的条件下允许客户端应用程序调用内部应用接口。通过设定适当的流量控制规则,控制客户端应用程序调用内部应用接口,从而避免同一客户端应用程序过度通过内部应用接口调用内部应用程序,也避免了同一内部应用程序被过度调用。因此减少了系统资源消耗,提高系统稳定性。【专利附图】

【附图说明】
[0016]图1为本发明一种流量控制方法的工作流程图;
[0017]图2为本发明一种流量控制系统的结构模块图;
[0018]图3为本发明一种流量控制系统一个例子的结构示意图。
【具体实施方式】
[0019]下面结合附图和具体实施例对本发明做进一步详细的说明。
[0020]如图1所示为本发明一种流量控制方法的工作流程图,包括:
[0021]步骤S101,网关接收到客户端应用程序对开放平台的内部应用接口的调用请求;
[0022]步骤S102,网关获取客户端应用程序或者内部应用接口的流量控制规则;
[0023]步骤S103,网关检测客户端应用程序或者内部应用接口是否满足所述流量控制规贝U,如果客户端应用程序或者内部应用接口满足所述流量控制规则,则允许客户端应用程序的所述调用请求,否则拒绝客户端应用程序的所述调用请求。
[0024]网关是与客户端通信的接口,所有客户端的请求都经网关转发。当客户端应用程序需要调用应用接口时,网关执行步骤S102获取对应的流量控制规则,其中,选择客户端应用程序的流量控制规则,或者内部应用接口的流量控制规则,或者客户端应用程序的流量控制规则和内部应用接口的流量控制规则,由网关根据配置文件决定。步骤S102中,网关获取客户端应用程序或者内部应用接口的流量控制规则,包括如下三种情况之一:
[0025]情况一,获取客户端应用程序的流量控制规则;
[0026]情况二,获取内部应用接口的流量控制规则;
[0027]情况三,获取客户端应用程序和内部应用接口的流量控制规则。
[0028]在其中一个实施例中,所述流量控制规则为:
[0029]在预设的应用程序调用计量时间段内,客户端应用程序的调用次数未超过与客户端应用程序对应的应用程序调用上限阈值,则满足所述流量控制规则,否则不满足所述流量控制规则,或者;
[0030]在预设的应用接口被调用计量时间段内,内部应用接口的被调用次数超过与内部应用接口对应的应用接口阈值,则满足所述流量控制规则,否则不满足所述流量控制规则,或者;
[0031]在预设的客户端应用程序调用内部应用接口计量时间段内,客户端应用程序调用内部应用接口的次数未超过与客户端应用程序和内部应用接口共同对应的联合调用上限阈值,则满足所述流量控制规则,否则不满足所述流量控制规则。
[0032]本实施例包括三种流量控制规则,网关可以根据配置文件,针对不同的客户端应用程序以及不同的内部应用接口,选择其中一个或者多个组合。
[0033]例如,对于客户端应用程序A调用应用接口 B,可以选择流量控制规则为:
[0034]在预设的应用程序调用计量时间段内,客户端应用程序的调用次数未超过与客户端应用程序对应的应用程序调用上限阈值,则满足所述流量控制规则,否则不满足所述流量控制规则。
[0035]此时,仅对客户端应用程序的调用进行限制,而不限制应用接口。
[0036]或者,也可以选择流量控制规则为:[0037]在预设的应用接口被调用计量时间段内,内部应用接口的被调用次数超过与内部应用接口对应的应用接口阈值,则满足所述流量控制规则,否则不满足所述流量控制规则。
[0038]则此时,仅对应用接口的被调用进行限制,而不对客户端应用程序进行限制。
[0039]然而,还可以选择流量控制规则为上述两种流量控制规则的组合,即对客户端应用程序的调用进行流量限制,也对应用接口的被调用进行限制。
[0040]同时,还可以精细到对特定客户端应用程序调用特定应用接口进行限制,即流量控制规则为:
[0041]在预设的客户端应用程序调用内部应用接口计量时间段内,客户端应用程序调用内部应用接口的次数未超过与客户端应用程序和内部应用接口共同对应的联合调用上限阈值,则满足所述流量控制规则,否则不满足所述流量控制规则。
[0042]其中,应用程序调用计量时间段、应用接口被调用计量时间段、客户端应用程序调用内部应用接口计量时间段可以相同也可以不同,其时间段的大小根据实际需要选择,例如可以选择为一天,也可以选择为一小时或者一分钟。
[0043]在其中一个实施例中,还包括:
[0044]与网关通信的分析控制系统通过对网关的访问日志的调用,获取客户端应用程序的调用次数,如果在预设的应用程序调用计量时间段内,检测到客户端应用程序的调用次数超过与客户端应用程序对应的应用程序调用警告阈值,则获取客户端应用程序的联系人邮件地址,向所述联系人邮件地址发送提醒邮件,所述应用程序调用警告阈值小于或等于所述应用程序调用上限阈值,或者;
[0045]与网关通信的分析控制系统通过对网关的访问日志的调用,获取客户端应用程序调用内部应用接口的次数,如果在预设的客户端应用程序调用内部应用接口计量时间段内,检测到客户端应用程序调用内部应用接口的次数超过与客户端应用程序和内部应用接口共同对应的联合调用警告阈值,则获取客户端应用程序的联系人邮件地址,向所述联系人邮件地址发送提醒邮件,所述联合调用警告阈值小于或等于所述联合调用上限阈值。
[0046]本实施例,在客户端应用程序的调用次数或者客户端应用程序调用内部应用接口的次数超过警告阈值时,向该客户端应用程序的联系人发送提醒邮件,如果该联系人觉得有必要提升阈值,则可以向网关发送确认请求,从而提升阈值。通过该实施例的方式,可以为有需要提升阈值的客户端应用程序提升阈值。
[0047]在其中有一个实施例中,还包括:
[0048]与网关通信的分析控制系统通过对网关的访问日志的调用,获取客户端应用程序的调用次数,计算在未来的增长评估期时间段内客户端应用程序的预估调用次数,如果所述预估调用次数超过与客户端应用程序关联的应用程序调用上限阈值,则保存所述应用程序调用上限阈值为历史应用程序调用上限阈值,将客户端应用程序的程序标识作为待更新应用程序标识,将所述预估调用次数作为待更新应用程序调用上限阈值,发送包括待更新应用程序调用上限阈值和对应的待更新应用程序标识的更新应用程序调用上限阈值请求,且在经过所述增长评估期时间段后,如果没有接收到与客户端应用程序关联的确定提升应用程序调用上限阈值请求,则将历史应用程序调用上限阈值作为待更新应用程序调用上限阈值,发送所述更新应用程序调用上限阈值请求;
[0049]网关接收到分析控制系统发送的更新应用程序调用上限阈值请求,将与待更新应用程序标识关联的应用程序调用上限阈值更新为所述待更新应用程序调用上限阈值;
[0050]网关接收到确定提升应用程序调用上限阈值请求,则转发到分析控制系统。
[0051]与网关通信的分析控制系统通过对网关的访问日志的调用,获取客户端应用程序的调用次数,计算在未来的增长评估期时间段内客户端应用程序的预估调用次数,当发现预估调用次数将会超过应用程序调用上限阈值,则向网关发送更新应用程序调用上限阈值请求,暂时提升应用程序调用上限阈值,从而避免因为达到上限而客户端应用程序无法使用。然而,上限上调并不是无限制的,需要客户端应用程序在一段时间内发送确定提升应用程序调用上限阈值请求,否则将会重新调整应用程序调用上限阈值为原来保留的阈值,从而对客户端应用程序的调用进行限制。
[0052]在其中一个实施例中,还包括:
[0053]与网关通信的分析控制系统通过对网关的访问日志的调用,获取客户端应用程序调用内部应用接口的次数,计算在未来的增长评估期时间段内客户端应用程序调用内部应用接口的预估次数,如果所述预估次数超过预设的与客户端应用程序关联的联合调用上限阈值,则保存所述联合调用上限阈值为历史联合调用上限阈值,将客户端应用程序的程序标识作为待更新应用程序标识,将所述预估次数作为待更新联合调用上限阈值,发送包括待更新联合调用上限阈值和对应的待更新应用程序标识的更新联合调用上限阈值请求,在经过所述增长评估期时间段后,如果没有接收到与客户端应用程序关联的确定提升联合调用上限阈值请求,则将所述历史联合调用上限阈值作为待更新联合调用上限阈值,发送所述更新联合调用上限阈值请求;
[0054]网关接收到分析控制系统发送的更新联合调用上限阈值请求,将与待更新应用程序标识关联的联合调用上限阈值更新为所述待更新联合调用上限阈值;
[0055]网关接收到确定提升应用程序调用上限阈值请求,则转发到分析控制系统。
[0056]在其中一个实施例中:
[0057]当网关允许客户端应用程序的所述调用请求,则增加客户端应用程序的调用次数、增加内部应用接口的被调用次数,增加客户端应用程序调用内部应用接口的次数并发送到与网关通信的集群计数器;
[0058]当网关检测客户端应用程序或者内部应用接口是否满足所述流量控制规则时,从集群计数器中获取:
[0059]在预设的应用程序调用计量时间段内,客户端应用程序的调用次数,或者;
[0060]在预设的应用接口被调用计量时间段内,内部应用接口的被调用次数,或者;
[0061]在预设的客户端应用程序调用内部应用接口计量时间段内,客户端应用程序调用内部应用接口的次数。
[0062]客户端应用程序的调用次数、内部应用接口的被调用次数和客户端应用程序调用内部应用接口的次数均采用集群计数器保存,减少网关的工作量。
[0063]在其中一个实施例中,还包括:
[0064]网关预先为应用接口分配至少一个线程,并设置为空闲线程;
[0065]如果网关允许客户端应用程序的所述调用请求,则检测内部应用接口是否有空闲线程:
[0066]如果内部应用接口有至少一个空闲线程,则从内部应用接口的空闲线程中选择一个作为当前线程,所述客户端应用程序采用所述当前线程调用所述内部应用接口,并将当前线程设置为工作线程,当所述客户端应用程序结束调用内部应用接口,则将当前线程设置为空闲线程;
[0067]如果内部应用接口没有空闲线程,则暂停客户端应用程序的所述调用请求直到内部应用接口有至少一个空闲线程。
[0068]通过线程对内部应用接口的限制,从而避免对同一个内部应用接口大量的并发调用。
[0069]如图2所示为本发明一种流量控制系统的结构模块图,包括:网关21,以及设置在网关21的:
[0070]调用请求接收模块2101,用于接收到客户端应用程序对开放平台的内部应用接口的调用请求;
[0071]流量控制规则获取模块2102,用于获取客户端应用程序或者内部应用接口的流量控制规则;
[0072]流量检测模块2103,用于检测客户端应用程序或者内部应用接口是否满足所述流量控制规则,如果客户端应用程序或者内部应用接口满足所述流量控制规则,则允许客户端应用程序的所述调用请求,否则拒绝客户端应用程序的所述调用请求。
[0073]在其中一个实施例中,所述流量控制规则为:
[0074]在预设的应用程序调用计量时间段内,客户端应用程序的调用次数未超过与客户端应用程序对应的应用程序调用上限阈值,则满足所述流量控制规则,否则不满足所述流量控制规则,或者;
[0075]在预设的应用接口被调用计量时间段内,内部应用接口的被调用次数超过与内部应用接口对应的应用接口阈值,则满足所述流量控制规则,否则不满足所述流量控制规则,或者;
[0076]在预设的客户端应用程序调用内部应用接口计量时间段内,客户端应用程序调用内部应用接口的次数未超过与客户端应用程序和内部应用接口共同对应的联合调用上限阈值,则满足所述流量控制规则,否则不满足所述流量控制规则。
[0077]在其中一个实施例中,还包括与网关21通信的分析控制系统22,以及:
[0078]设置在分析控制系统22的流量警告模块221,用于通过对网关的访问日志的调用,获取客户端应用程序的调用次数,如果在预设的应用程序调用计量时间段内,客户端应用程序的调用次数超过与客户端应用程序对应的应用程序调用警告阈值,则获取客户端应用程序的联系人邮件地址,向所述联系人邮件地址发送提醒邮件,所述应用程序调用警告阈值小于或等于所述应用程序调用上限阈值,或者;
[0079]通过对网关的访问日志的调用,获取客户端应用程序调用内部应用接口的次数,如果在预设的客户端应用程序调用内部应用接口计量时间段内,客户端应用程序调用内部应用接口的次数超过与客户端应用程序和内部应用接口共同对应的联合调用警告阈值,则获取客户端应用程序的联系人邮件地址,向所述联系人邮件地址发送提醒邮件,所述联合调用警告阈值小于或等于所述联合调用上限阈值。
[0080]在其中一个实施例中,还包括与网关21通信的分析控制系统22,以及:
[0081]设置在分析控制系统22的更新应用程序调用上限阈值请求发送模块222,用于通过对网关的访问日志的调用,获取客户端应用程序的调用次数,计算在未来的增长评估期时间段内客户端应用程序的预估调用次数,如果所述预估调用次数超过与客户端应用程序关联的应用程序调用上限阈值,则保存所述应用程序调用上限阈值为历史应用程序调用上限阈值,将客户端应用程序的程序标识作为待更新应用程序标识,将所述预估调用次数作为待更新应用程序调用上限阈值,发送包括待更新应用程序调用上限阈值和对应的待更新应用程序标识的更新应用程序调用上限阈值请求,在经过所述增长评估期时间段后,如果没有接收到与客户端应用程序关联的确定提升应用程序调用上限阈值请求,则将历史应用程序调用上限阈值作为待更新应用程序调用上限阈值,发送所述更新应用程序调用上限阈值请求。
[0082]设置在网关21的更新应用程序调用上限阈值请求接收模块2104,用于接收分析控制系统发送的更新应用程序调用上限阈值请求,将与待更新应用程序标识关联的应用程序调用上限阈值更新为所述待更新应用程序调用上限阈值;
[0083]设置在网关21的确定提升应用程序调用上限阈值请求接收模块2105,用于将接收到确定提升应用程序调用上限阈值请求,转发到分析控制系统。
[0084]在其中一个实施例中,还包括与网关21通信的分析控制系统22,以及:
[0085]设置在分析控制系统22的更新联合调用上限阈值请求发送模块223,用于通过对网关的访问日志的调用,获取客户端应用程序调用内部应用接口的次数,计算在未来的增长评估期时间段内客户端应用程序调用内部应用接口的预估次数,如果所述预估次数超过预设的与客户端应用程序关联的联合调用上限阈值,则保存所述联合调用上限阈值为历史联合调用上限阈值,将客户端应用程序的程序标识作为待更新应用程序标识,将所述预估次数作为待更新联合调用上限阈值,发送包括待更新联合调用上限阈值和对应的待更新应用程序标识的更新联合调用上限阈值请求,在经过所述增长评估期时间段后,如果没有接收到与客户端应用程序关联的确定提升联合调用上限阈值请求,则将所述历史联合调用上限阈值作为待更新联合调用上限阈值,发送所述更新联合调用上限阈值请求;
[0086]设置在网关21的更新联合调用上限阈值请求接收模块2106,用于接收分析控制系统发送的更新联合调用上限阈值请求,将与待更新应用程序标识关联的联合调用上限阈值更新为所述待更新联合调用上限阈值;
[0087]设置在网关21的确定提升应用程序调用上限阈值请求接收模块2107,用于将接收到确定提升应用程序调用上限阈值请求,转发到分析控制系统。
[0088]在其中一个实施例中,还包括:
[0089]设置在网关21的调用次数发送模块2108,用于当允许客户端应用程序的所述调用请求,则增加客户端应用程序的调用次数、增加内部应用接口的被调用次数,增加客户端应用程序调用内部应用接口的次数并发送到与网关通信的集群计数器23 ;
[0090]设置在网关21的流量检测模块2103,当检测客户端应用程序或者内部应用接口是否满足所述流量控制规则时,从集群计数器23中获取:
[0091]在预设的应用程序调用计量时间段内,客户端应用程序的调用次数,或者;
[0092]在预设的应用接口被调用计量时间段内,内部应用接口的被调用次数,或者;
[0093]在预设的客户端应用程序调用内部应用接口计量时间段内,客户端应用程序调用内部应用接口的次数。[0094]在其中一个实施例中,还包括:
[0095]设置在网关21的线程分配模块2109,用于预先为应用接口分配至少一个线程,并设置为空闲线程;
[0096]设置在网关21的线程检测模块2110,用于如果允许客户端应用程序的所述调用请求,则检测内部应用接口是否有空闲线程:
[0097]如果内部应用接口有至少一个空闲线程,则从内部应用接口的空闲线程中选择一个作为当前线程,所述客户端应用程序采用所述当前线程调用所述内部应用接口,并将当前线程设置为工作线程,当所述客户端应用程序结束调用内部应用接口,则将当前线程设置为空闲线程;
[0098]如果内部应用接口没有空闲线程,则暂停客户端应用程序的所述调用请求直到内部应用接口有至少一个空闲线程。
[0099]如图3所示为本发明一种流量控制系统一个例子的结构示意图。包括:网关31、分布式集中计数器32、日志分析系统33,业务控制系统34。
[0100]其中,网关31中设置有流控维度池311,专门对客户端应用程序调用内部应用接口进行流量限制,而分布式集中计数器32则用于保存客户端应用程序的调用次数、内部应用接口的被调用次数,以及客户端应用程序调用内部应用接口的次数。
[0101]其中,日志分析系统33,业务控制系统34共同组成上述的分析控制系统,日志分析系统33从网关31中获取日志进行分析,计算在预设的应用程序调用计量时间段内,客户端应用程序的调用次数是否超过与客户端应用程序对应的应用程序调用警告阈值,或者在预设的客户端应用程序调用内部应用接口计量时间段内,客户端应用程序调用内部应用接口的次数是否超过与客户端应用程序和内部应用接口共同对应的联合调用警告阈值,如果超过则通知业务控制系统34发送提醒邮件。其中,应用程序调用计量时间段和客户端应用程序调用内部应用接口计量时间段为I天。
[0102]同时,日志分析系统33获取客户端应用程序的调用次数,计算在未来的增长评估期时间段内客户端应用程序的预估调用次数,以及获取客户端应用程序调用内部应用接口的次数,计算在未来的增长评估期时间段内客户端应用程序调用内部应用接口的预估次数,并由业务控制系统34根据日志分析系统33的计算结果,决定是否向网关31发送更新应用程序调用上限阈值请求和更新联合调用上限阈值请求。增长评估期时间段优选为3天。
[0103]因此,当客户端应用程序的调用次数超过与客户端应用程序对应的应用程序调用警告阈值,或者客户端应用程序调用内部应用接口的次数超过与客户端应用程序和内部应用接口共同对应的联合调用警告阈值时,则会发送提醒邮件,同时,计算在未来的增长评估期时间段内客户端应用程序的预估调用次数和在未来的增长评估期时间段内客户端应用程序调用内部应用接口的预估次数,适当提高应用程序调用上限阈值和联合调用上限阈值,暂时允许客户端应用程序超上限使用,避免影响用户体验。而经过增长评估期时间段,即3天后,如果客户端应用程序并未确认提高上限,则将应用程序调用上限阈值和联合调用上限阈值下调至原来数值,对客户端应用程序调用应用接口进行限制。
[0104]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
1.一种流量控制方法,其特征在于,包括: 网关接收到客户端应用程序对开放平台的内部应用接口的调用请求; 网关获取客户端应用程序或者内部应用接口的流量控制规则; 网关检测客户端应用程序或者内部应用接口是否满足所述流量控制规则,如果客户端应用程序或者内部应用接口满足所述流量控制规则,则允许客户端应用程序的所述调用请求,否则拒绝客户端应用程序的所述调用请求。
2.根据权利要求1所述的流量控制方法,其特征在于,所述流量控制规则为: 在预设的应用程序调用计量时间段内,客户端应用程序的调用次数未超过与客户端应用程序对应的应用程序调用上限阈值,则满足所述流量控制规则,否则不满足所述流量控制规则,或者; 在预设的应用接口被调用计量时间段内,内部应用接口的被调用次数超过与内部应用接口对应的应用接口阈值,则满足所述流量控制规则,否则不满足所述流量控制规则,或者; 在预设的客户端应用程序调用内部应用接口计量时间段内,客户端应用程序调用内部应用接口的次数未超过与客户端应用程序和内部应用接口共同对应的联合调用上限阈值,则满足所述流量控制规则,否则不满足所述流量控制规则。
3.根据权利要求2所述的流量控制方法,其特征在于,还包括: 与网关通信的分析控制系统通过对网关的访问日志的调用,获取客户端应用程序的调用次数,如果在预设的应用程序调用计量时间段内,检测到客户端应用程序的调用次数超过与客户端应用程序对应的应用程序调用警告阈值,则获取客户端应用程序的联系人邮件地址,向所述联系人邮件地址发送提醒邮件,所述应用程序调用警告阈值小于或等于所述应用程序调用上限阈值,或者; 与网关通信的分析控制系统通过对网关的访问日志的调用,获取客户端应用程序调用内部应用接口的次数,如果在预设的客户端应用程序调用内部应用接口计量时间段内,检测到客户端应用程序调用内部应用接口的次数超过与客户端应用程序和内部应用接口共同对应的联合调用警告阈值,则获取客户端应用程序的联系人邮件地址,向所述联系人邮件地址发送提醒邮件,所述联合调用警告阈值小于或等于所述联合调用上限阈值。
4.根据权利要求2所述的流量控制方法,其特征在于,还包括: 与网关通信的分析控制系统通过对网关的访问日志的调用,获取客户端应用程序的调用次数,计算在未来的增长评估期时间段内客户端应用程序的预估调用次数,如果所述预估调用次数超过与客户端应用程序关联的应用程序调用上限阈值,则保存所述应用程序调用上限阈值为历史应用程 序调用上限阈值,将客户端应用程序的程序标识作为待更新应用程序标识,将所述预估调用次数作为待更新应用程序调用上限阈值,发送包括待更新应用程序调用上限阈值和对应的待更新应用程序标识的更新应用程序调用上限阈值请求,且在经过所述增长评估期时间段后,如果没有接收到与客户端应用程序关联的确定提升应用程序调用上限阈值请求,则将历史应用程序调用上限阈值作为待更新应用程序调用上限阈值,发送所述更新应用程序调用上限阈值请求; 网关接收到分析控制系统发送的更新应用程序调用上限阈值请求,将与待更新应用程序标识关联的应用程序调用上限阈值更新为所述待更新应用程序调用上限阈值;网关接收到确定提升应用程序调用上限阈值请求,则转发到分析控制系统。
5.根据权利要求2所述的流量控制方法,其特征在于,还包括: 与网关通信的分析控制系统通过对网关的访问日志的调用,获取客户端应用程序调用内部应用接口的次数,计算在未来的增长评估期时间段内客户端应用程序调用内部应用接口的预估次数,如果所述预估次数超过预设的与客户端应用程序关联的联合调用上限阈值,则保存所述联合调用上限阈值为历史联合调用上限阈值,将客户端应用程序的程序标识作为待更新应用程序标识,将所述预估次数作为待更新联合调用上限阈值,发送包括待更新联合调用上限阈值和对应的待更新应用程序标识的更新联合调用上限阈值请求,在经过所述增长评估期时间段后,如果没有接收到与客户端应用程序关联的确定提升联合调用上限阈值请求,则将所述历史联合调用上限阈值作为待更新联合调用上限阈值,发送所述更新联合调用上限阈值请求; 网关接收到分析控制系统发送的更新联合调用上限阈值请求,将与待更新应用程序标识关联的联合调用上限阈值更新为所述待更新联合调用上限阈值; 网关接收到确定提升应用程序调用上限阈值请求,则转发到分析控制系统。
6.根据权利要求1所述的流量控制方法,其特征在于,还包括: 当网关允许客户端应用程序的所述调用请求,则增加客户端应用程序的调用次数、增加内部应用接口的被调用次数,增加客户端应用程序调用内部应用接口的次数并发送到与网关通信的集群计数器; 当网关检测客户端应用程序或者内部应用接口是否满足所述流量控制规则时,从集群计数器中获取: 在预设的应用程序调用计量时间段内,客户端应用程序的调用次数,或者; 在预设的应用接口被调用计量时间段内,内部应用接口的被调用次数,或者; 在预设的客户端应用程序调用内部应用接口计量时间段内,客户端应用程序调用内部应用接口的次数。
7.根据权利要求1所述的流量控制方法,其特征在于,还包括: 网关预先为应用接口分配至少一个线程,并设置为空闲线程; 如果网关允许客户端应用程序的所述调用请求,则检测内部应用接口是否有空闲线程: 如果内部应用接口有至少一个空闲线程,则从内部应用接口的空闲线程中选择一个作为当前线程,所述客户端应用程序采用所述当前线程调用所述内部应用接口,并将当前线程设置为工作线程,当所述客户端应用程序结束调用内部应用接口,则将当前线程设置为空闲线程; 如果内部应用接口没有空闲线程,则暂停客户端应用程序的所述调用请求直到内部应用接口有至少一个空闲线程。
8.一种流量控制系统,其特征在于,包括:网关,以及设置在网关的: 调用请求接收模块,用于接收到客户端应用程序对开放平台的内部应用接口的调用请求; 流量控制规则获取模块,用于获取客户端应用程序或者内部应用接口的流量控制规则;流量检测模块,用于检测客户端应用程序或者内部应用接口是否满足所述流量控制规贝U,如果客户端应用程序或者内部应用接口满足所述流量控制规则,则允许客户端应用程序的所述调用请求,否则拒绝客户端应用程序的所述调用请求。
9.根据权利要求8所述的流量控制系统,其特征在于,所述流量控制规则为: 在预设的应用程序调用计量时间段内,客户端应用程序的调用次数未超过与客户端应用程序对应的应用程序调用上限阈值,则满足所述流量控制规则,否则不满足所述流量控制规则,或者; 在预设的应用接口被调用计量时间段内,内部应用接口的被调用次数超过与内部应用接口对应的应用接口阈值,则满足所述流量控制规则,否则不满足所述流量控制规则,或者; 在预设的客户端应用程序调用内部应用接口计量时间段内,客户端应用程序调用内部应用接口的次数未超过与客户端应用程序和内部应用接口共同对应的联合调用上限阈值,则满足所述流量控制规则,否则不满足所述流量控制规则。
10.根据权利要求9所述的流量控制系统,其特征在于,还包括与网关通信的分析控制系统,以及: 设置在分析控制系统的流量警告模块,用于通过对网关的访问日志的调用,获取客户端应用程序的调用次数,如果在预设的应用程序调用计量时间段内,客户端应用程序的调用次数超过与客户端应用程序对应的应用程序调用警告阈值,则获取客户端应用程序的联系人邮件地址,向所述联系人邮件地址发送提醒邮件,所述应用程序调用警告阈值小于或等于所述应用程序调用上限阈值,或者; 通过对网关的访问`日志的调用,获取客户端应用程序调用内部应用接口的次数,如果在预设的客户端应用程序调用内部应用接口计量时间段内,客户端应用程序调用内部应用接口的次数超过与客户端应用程序和内部应用接口共同对应的联合调用警告阈值,则获取客户端应用程序的联系人邮件地址,向所述联系人邮件地址发送提醒邮件,所述联合调用警告阈值小于或等于所述联合调用上限阈值。
11.根据权利要求9所述的流量控制系统,其特征在于,还包括与网关通信的分析控制系统,以及: 设置在分析控制系统的更新应用程序调用上限阈值请求发送模块,用于通过对网关的访问日志的调用,获取客户端应用程序的调用次数,计算在未来的增长评估期时间段内客户端应用程序的预估调用次数,如果所述预估调用次数超过与客户端应用程序关联的应用程序调用上限阈值,则保存所述应用程序调用上限阈值为历史应用程序调用上限阈值,将客户端应用程序的程序标识作为待更新应用程序标识,将所述预估调用次数作为待更新应用程序调用上限阈值,发送包括待更新应用程序调用上限阈值和对应的待更新应用程序标识的更新应用程序调用上限阈值请求,在经过所述增长评估期时间段后,如果没有接收到与客户端应用程序关联的确定提升应用程序调用上限阈值请求,则将历史应用程序调用上限阈值作为待更新应用程序调用上限阈值,发送所述更新应用程序调用上限阈值请求。 设置在网关的更新应用程序调用上限阈值请求接收模块,用于接收分析控制系统发送的更新应用程序调用上限阈值请求,将与待更新应用程序标识关联的应用程序调用上限阈值更新为所述待更新应用程序调用上限阈值;设置在网关的确定提升应用程序调用上限阈值请求接收模块,用于将接收到确定提升应用程序调用上限阈值请求,转发到分析控制系统。
12.根据权利要求9所述的流量控制系统,其特征在于,还包括与网关通信的分析控制系统,以及: 设置在分析控制系统的更新联合调用上限阈值请求发送模块,用于通过对网关的访问日志的调用,获取客户端应用程序调用内部应用接口的次数,计算在未来的增长评估期时间段内客户端应用程序调用内部应用接口的预估次数,如果所述预估次数超过预设的与客户端应用程序关联的联合调用上限阈值,则保存所述联合调用上限阈值为历史联合调用上限阈值,将客户端应用程序的程序标识作为待更新应用程序标识,将所述预估次数作为待更新联合调用上限阈值,发送包括待更新联合调用上限阈值和对应的待更新应用程序标识的更新联合调用上限阈值请求,在经过所述增长评估期时间段后,如果没有接收到与客户端应用程序关联的确定提升联合调用上限阈值请求,则将所述历史联合调用上限阈值作为待更新联合调用上限阈值,发送所述更新联合调用上限阈值请求; 设置在网关的更新联合调用上限阈值请求接收模块,用于接收分析控制系统发送的更新联合调用上限阈值请求,将与待更新应用程序标识关联的联合调用上限阈值更新为所述待更新联合调用上限阈值; 设置在网关的确定提升应用程序调用上限阈值请求接收模块,用于将接收到确定提升应用程序调用上限阈值请求,转发到分析控制系统。
13.根据权利要求8所述的流量控制系统,其特征在于,还包括: 设置在网关的调用次数发送模块,用于当允许客户端应用程序的所述调用请求,则增加客户端应用程序的调用次数、增加内部应用接口的被调用次数,增加客户端应用程序调用内部应用接口的次数并发送到与网关通信的集群计数器; 设置在网关的流量检测模块,当检测客户端应用程序或者内部应用接口是否满足所述流量控制规则时,从集群计数器中获`取: 在预设的应用程序调用计量时间段内,客户端应用程序的调用次数,或者; 在预设的应用接口被调用计量时间段内,内部应用接口的被调用次数,或者; 在预设的客户端应用程序调用内部应用接口计量时间段内,客户端应用程序调用内部应用接口的次数。
14.根据权利要求8所述的流量控制系统,其特征在于,还包括: 设置在网关的线程分配模块,用于预先为应用接口分配至少一个线程,并设置为空闲线程; 设置在网关的线程检测模块,用于如果允许客户端应用程序的所述调用请求,则检测内部应用接口是否有空闲线程: 如果内部应用接口有至少一个空闲线程,则从内部应用接口的空闲线程中选择一个作为当前线程,所述客户端应用程序采用所述当前线程调用所述内部应用接口,并将当前线程设置为工作线程,当所述客户端应用程序结束调用内部应用接口,则将当前线程设置为空闲线程; 如果内部应用接口没有空闲线程,则暂停客户端应用程序的所述调用请求直到内部应用接口有至少一个空闲线程。
【文档编号】G06F9/48GK103701709SQ201310683050
【公开日】2014年4月2日 申请日期:2013年12月13日 优先权日:2013年12月13日
【发明者】杜宇甫 申请人:北京京东尚科信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1