首页 / 专利库 / 电脑零配件 / 接口 / 通信接口 / 服务接口访问限流方法及装置

服务接口访问限流方法及装置

阅读:309发布:2024-02-26

专利汇可以提供服务接口访问限流方法及装置专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种服务 接口 访问 限流方法及装置,方法包括:加载包含非入口层服务接口的访问限流规则的配置信息,其中,访问限流规则依据调用非入口层服务接口的至少一个入口层服务接口的历史访问数据动态生成;当接收到非入口层服务接口的访问 请求 时,根据当前访问次数判断访问请求是否符合访问限流规则;若否,则对访问请求进行限流处理。本发明利用调用非入口层服务接口的至少一个入口层服务接口的历史访问数据动态生成对非入口层服务接口的访问限流规则,可以使得配置信息更贴合非入口层服务接口的访问实际,使得对服务接口访问限流更加合理,减少占用资源的浪费。,下面是服务接口访问限流方法及装置专利的具体信息内容。

1.一种服务接口访问限流方法,其包括:
加载包含非入口层服务接口的访问限流规则的配置信息,其中,所述访问限流规则依据调用所述非入口层服务接口的至少一个入口层服务接口的历史访问数据动态生成;
当接收到非入口层服务接口的访问请求时,根据当前访问次数判断所述访问请求是否符合所述访问限流规则;
若否,则对所述访问请求进行限流处理。
2.根据权利要求1所述的方法,其中,所述访问限流规则限定了所述非入口层服务接口的最大访问次数;
所述方法还包括:
统计调用所述非入口层服务接口的至少一个入口层服务接口的对应的历史时间段访问次数;
将调用非入口层服务接口的相同时间点的至少一个入口层服务接口的历史访问次数累加之和的最大值作为所述非入口层服务接口的最大访问次数;
所述当接收到非入口层服务接口的访问请求时,根据当前访问次数判断所述访问请求是否符合所述访问限流规则进一步包括:
判断非入口层服务接口的当前访问次数是否小于所述非入口层服务接口的最大访问次数,若否,则所述访问请求不符合所述访问限流规则;若是,统计非入口层服务接口的当前访问次数。
3.根据权利要求2所述的方法,其中,所述访问限流规则限定了每个入口层服务接口调用非入口层服务接口的各个时间段的最大访问次数;
所述方法还包括:
根据调用所述非入口层服务接口的至少一个入口层服务接口的对应的历史时间段访问次数,对应的计算各个时间段每个入口层服务接口调用非入口层服务接口访问次数占比;
根据所述非入口层服务接口的最大访问次数与各个时间段每个入口层服务接口调用非入口层服务接口访问次数占比之积,得到每个入口层服务接口调用非入口层服务接口的各个时间段的最大访问次数;
所述当接收到非入口层服务接口的访问请求时,根据当前访问次数判断所述访问请求是否符合所述访问限流规则进一步包括:
获取调用非入口层服务接口的入口层服务接口;
判断入口层服务接口调用非入口层服务接口的访问次数是否小于所述入口层服务接口调用非入口层服务接口的当前时间段的最大访问次数,若否,则所述访问请求不符合所述访问限流规则;若是,统计所述入口层服务接口在当前时间段调用非入口层服务接口的访问次数。
4.根据权利要求2或3所述的方法,其中,所述方法还包括:
调整特定日期的所述非入口层服务接口的最大访问次数,和/或,调整特定日期的通过每个入口层服务接口调用非入口层服务接口的各个时间段的最大访问次数。
5.根据权利要求1-4中任一项所述的方法,其中,在所述对所述访问请求进行限流处理后,所述方法还包括:
将所述非入口层服务接口的返回值设置为空,并抛出业务异常。
6.一种服务接口访问限流装置,其包括:
加载模,适于加载包含非入口层服务接口的访问限流规则的配置信息,其中,所述访问限流规则依据调用所述非入口层服务接口的至少一个入口层服务接口的历史访问数据动态生成;
判断模块,适于当接收到非入口层服务接口的访问请求时,根据当前访问次数判断所述访问请求是否符合所述访问限流规则;若否,则对所述访问请求进行限流处理。
7.根据权利要求6所述的装置,其中,所述访问限流规则限定了所述非入口层服务接口的最大访问次数;
所述装置还包括:
第一统计模块,适于统计调用所述非入口层服务接口的至少一个入口层服务接口的对应的历史时间段访问次数;将调用非入口层服务接口的相同时间点的至少一个入口层服务接口的历史访问次数累加之和的最大值作为所述非入口层服务接口的最大访问次数;
所述判断模块进一步适于:
判断非入口层服务接口的当前访问次数是否小于所述非入口层服务接口的最大访问次数,若否,则所述访问请求不符合所述访问限流规则;若是,统计非入口层服务接口的当前访问次数。
8.根据权利要求6或7所述的装置,其中,所述访问限流规则限定了每个入口层服务接口调用非入口层服务接口的各个时间段的最大访问次数;
所述装置还包括:
第二统计模块,适于根据调用所述非入口层服务接口的至少一个入口层服务接口的对应的历史时间段访问次数,对应的计算各个时间段每个入口层服务接口调用非入口层服务接口访问次数占比;根据所述非入口层服务接口的最大访问次数与各个时间段每个入口层服务接口调用非入口层服务接口访问次数占比之积,得到每个入口层服务接口调用非入口层服务接口的各个时间段的最大访问次数;
所述判断模块进一步适于:
获取调用非入口层服务接口的入口层服务接口;判断入口层服务接口调用非入口层服务接口的访问次数是否小于所述入口层服务接口调用非入口层服务接口的当前时间段的最大访问次数,若否,则所述访问请求不符合所述访问限流规则;若是,统计所述入口层服务接口在当前时间段调用非入口层服务接口的访问次数。
9.一种电子设备,包括:处理器、存储器通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-5中任一项所述的服务接口访问限流方法对应的操作。
10.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-5中任一项所述的服务接口访问限流方法对应的操作。

说明书全文

服务接口访问限流方法及装置

技术领域

[0001] 本发明涉及软件领域,具体涉及一种服务接口访问限流方法及装置。

背景技术

[0002] 当服务器被用户大量访问时,为了保障服务器运行的稳定性,需要对其中某些核心的业务服务接口进行限流处理,以防止服务器被瞬间涌入的访问流量冲垮。如双11购物节时,口碑服务器会对下面几个核心接口进行限流处理,如用户登录接口,限流访问次数x1/秒、首页访问接口,限流访问次数x2/秒、商品购买接口,限流访问次数x3/秒等。通过这样的限流配置,当以上各接口的访问次数超过指定的限流访问次数时,服务器会直接拒绝掉新增的访问服务,以保障服务器正常运行。
[0003] 考虑到入口层的业务服务接口对底层接口有依赖关系,现有的限流处理在对底层接口做限流时,是将访问底层接口的多个入口层的业务服务的限流访问次数相加,将限流访问次数之和作为底层接口的限流访问次数。如用户登录接口和首页访问接口都会访问到了会员信息接口,为了能够支撑用户登录接口和首页访问接口,设置会员信息接口需要提供的服务至少需要达到x1+x2/秒,即设置会员信息接口的限流访问次数为x1+x2/秒,会员信息接口的承受能需要与限流访问次数相匹配,根据限流访问次数设置会员信息接口所占用的资源。但在实际访问时,用户登录接口和首页访问接口一般并不会同时达到各自访问峰值,即用户登录接口和首页访问接口对会员信息接口的访问次数不会同时达到x1/秒和x2/秒。这样,对会员信息接口的限流设置就造成了会员信息接口占用的资源浪费。

发明内容

[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] 图1示出了根据本发明一个实施例的服务接口访问限流方法的流程图
[0050] 图2a-图2c示出了入口层服务接口与非入口层服务接口间调用关系、以及,根据入口层服务接口访问数据得到非入口层服务接口访问数据的示意图;
[0051] 图3示出了根据本发明另一个实施例的服务接口访问限流方法的流程图;
[0052] 图4示出了根据本发明又一个实施例的服务接口访问限流方法的流程图;
[0053] 图5示出了根据本发明一个实施例的服务接口访问限流装置的功能框图
[0054] 图6示出了根据本发明一个实施例的一种电子设备的结构示意图。

具体实施方式

[0055] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0056] 图1示出了根据本发明一个实施例的服务接口访问限流方法的流程图。如图1所示,服务接口访问限流方法具体包括如下步骤:
[0057] 步骤S101,加载包含非入口层服务接口的访问限流规则的配置信息。
[0058] 对非入口层服务接口的访问一般由入口层服务接口调用产生,如图2a所示,入口层服务接口登录接口和首页接口会调用非入口层服务接口会员信息系统的接口。通过对至少一个入口层服务接口的历史访问数据进行统计,可以得到至少一个入口层服务接口的历史实时的访问数据。根据至少一个入口层服务接口的历史实时的访问数据,以及入口层服务接口与非入口层服务接口的调用关系,可以得到非入口层服务接口支撑入口层服务接口访问所需提供的服务。如图2b所示,统计登录接口的访问数据与首页接口的访问数据,得到对应的访问数据曲线。将得到的登录接口的访问数据曲线与首页接口的访问数据曲线的值进行累计,可以得到会员信息系统接口应提供的服务需达到的访问数据曲线,如图2c所示。若登录接口的访问数据的最大访问次数为x1,首页接口的访问数据的最大访问次数为x2,根据图2c所示的会员信息系统接口的访问数据曲线可知,会员信息系统接口的最大访问次数y远小于x1+x2的值。通过调用非入口层服务接口的至少一个入口层服务接口的历史访问数据,可以动态的得到如非入口层服务接口应提供的最大访问次数等,即访问限流规则可以依据调用非入口层服务接口的至少一个入口层服务接口的历史访问数据动态生成。根据当前时间,可以依据相应的历史时期的调用非入口层服务接口的至少一个入口层服务接口的历史访问数据动态生成对非入口层服务接口的访问限流规则。
[0059] 为使访问限流规则更贴合实际,在获取至少一个入口层服务接口的历史访问数据时,可以获取与当前时间具有相同属性关系的历史时间。如当前为周末,可以获取上一个周末至少一个入口层服务接口的访问数据,更贴合周末时用户访问入口层服务接口的情况;或者当前为周一,可以获取上一周周一至少一个入口层服务接口的访问数据等。
[0060] 包含非入口层服务接口的访问限流规则的配置信息中可以包含对多个非入口层服务接口的访问限流规则,加载包含非入口层服务接口的访问限流规则的配置信息,以便对每个非入口层服务接口的访问进行限流处理。
[0061] 步骤S102,当接收到非入口层服务接口的访问请求时,根据当前访问次数判断访问请求是否符合访问限流规则。
[0062] 当接收到非入口层服务接口的访问请求时,先根据当前对非入口层服务接口的访问次数进行判断,判断当前访问次数是否符合访问限流规则,若否,则执行步骤S103,若是,则继续根据访问请求进行后续的正常业务处理。
[0063] 步骤S103,对访问请求进行限流处理。
[0064] 对访问请求进行限流处理,如直接拒绝访问请求,不再使访问请求对服务器造成压力,以保障整个系统的稳定性。
[0065] 根据本发明提供的服务接口访问限流方法,加载包含非入口层服务接口的访问限流规则的配置信息,其中,访问限流规则依据调用非入口层服务接口的至少一个入口层服务接口的历史访问数据动态生成;当接收到非入口层服务接口的访问请求时,根据当前访问次数判断访问请求是否符合访问限流规则;若否,则对访问请求进行限流处理。本发明利用调用非入口层服务接口的至少一个入口层服务接口的历史访问数据动态生成对非入口层服务接口的访问限流规则,可以使得配置信息更贴合非入口层服务接口的访问实际,使得对服务接口访问限流更加合理,减少占用资源的浪费。
[0066] 图3示出了根据本发明另一个实施例的服务接口访问限流方法的流程图。如图3所示,服务接口访问限流方法具体包括如下步骤:
[0067] 步骤S301,统计调用非入口层服务接口的至少一个入口层服务接口的对应的历史时间段访问次数。
[0068] 根据非入口层服务接口与至少一个入口层服务接口的调用关系,统计调用非入口层服务接口的至少一个入口层服务接口的对应的历史时间段访问次数。具体的,历史时间段可以为一天之内多个连续的时间段,每个时间段的时长可以根据实施情况设置,如5分钟。按照连续时间段统计至少一个入口层服务接口在对应的历史时间段内的访问次数。
[0069] 步骤S302,将调用非入口层服务接口的相同时间点的至少一个入口层服务接口的历史访问次数累加之和的最大值作为非入口层服务接口的最大访问次数。
[0070] 将调用同一个非入口层服务接口的至少一个入口层服务接口的对应的历史时间段访问次数按照相同时间点进行累加,如将0点1分调用会员信息系统接口的登录接口的历史访问次数与0点1分调用会员信息系统接口的首页接口的历史访问次数相加,得到0点1分会员信息系统接口的访问次数,依次计算,得到多个时间点的会员信息系统接口的访问次数。将其中的最大值作为非入口层服务接口的最大访问次数。
[0071] 可选地,对于特定日期,如购物服务器对于双11、双12等特定日期,仅使用历史时间段的访问次数可能不够准确,此时,可以通过预估方式调整特定日期的非入口层服务接口的最大访问次数,以应对突发的大量访问次数的可能性。
[0072] 步骤S303,加载包含非入口层服务接口的访问限流规则的配置信息。
[0073] 访问限流规则限定了非入口层服务接口的最大访问次数。当非入口层服务所在的服务器启动后,加载对应的配置信息,从而使非入口层服务接口的访问限流规则生效,以便对非入口层服务接口的访问进行限流处理。
[0074] 步骤S304,判断当前访问次数是否小于非入口层服务接口的最大访问次数。
[0075] 非入口层服务接口的初始化当前访问次数为0,初始化时间可以从每天的0点开始。在接收到当前对非入口层服务接口的访问时,先判断当前访问次数是否小于访问限流规则中限定的非入口层服务接口的最大访问次数,如会员信息系统接口最大访问次数为50次,若当前访问次数为30次,小于最大访问次数,则执行步骤S307;若当前访问次数为50次,不小于最大访问次数,则判断访问请求不符合访问限流规则,执行步骤S305。
[0076] 步骤S305,对访问请求进行限流处理。
[0077] 直接拒绝当前访问请求,以便对访问请求进行限流处理,保障系统稳定。
[0078] 步骤S306,将非入口层服务接口的返回值设置为空,并抛出业务异常。
[0079] 可选地,为提供给用户良好的使用体验,可以在对限流处理后,将非入口层服务接口的返回值设置为空,并抛出相应的业务异常,以便对业务异常进行相关处理,如提示用户当前服务器正忙,请耐心等待;或者提示登录中进度进程等,使用户无感知对访问请求的限流处理,也缓解服务器处理压力。
[0080] 步骤S307,统计非入口层服务接口的当前访问次数。
[0081] 当非入口层服务接口的访问请求符合访问限流规则时,即当前访问次数小于非入口层服务接口的最大访问次数时,根据访问请求进行后续的正常业务处理,并将当前访问次数加一,以统计非入口层服务接口的当前访问次数,方便对后续再接收到的访问请求进行判断,是否符合访问限流规则。
[0082] 根据本发明提供的服务接口访问限流方法,通过统计调用非入口层服务接口的至少一个入口层服务接口的对应的历史时间段访问次数,将相同时间点的至少一个入口层服务接口的历史访问次数累加之和的最大值作为非入口层服务接口的最大访问次数。访问限流规则主要限定了非入口层服务接口的最大访问次数,判断当前访问次数是否小于非入口层服务接口的最大访问次数,以确定是否对访问请求进行限流处理。本发明采用入口层服务接口的历史访问数据动态生成对非入口层服务接口的访问限流规则,可以使得配置信息更贴合非入口层服务接口的访问实际,使得对服务接口访问限流更加合理,减少非入口层服务占用资源的浪费。
[0083] 图4示出了根据本发明又一个实施例的服务接口访问限流方法的流程图。如图4所示,服务接口访问限流方法具体包括如下步骤:
[0084] 步骤S401,统计调用非入口层服务接口的至少一个入口层服务接口的对应的历史时间段访问次数。
[0085] 步骤S402,将调用非入口层服务接口的相同时间点的至少一个入口层服务接口的历史访问次数累加之和的最大值作为非入口层服务接口的最大访问次数。
[0086] 以上步骤参考图3实施例步骤S301-S302,在此不再赘述。
[0087] 步骤S403,根据调用非入口层服务接口的至少一个入口层服务接口的对应的历史时间段访问次数,对应的计算各个时间段每个入口层服务接口调用非入口层服务接口访问次数占比。
[0088] 具体的,如在某一历史时间0点0分至0点5分时间段,登录接口调用会员信息系统接口4次,首页接口调用会员信息系统接口6次,计算得到登录接口调用会员信息系统接口的访问次数占比为4/(4+6)=40%,首页接口调用会员信息系统接口的访问次数占比为6/(4+6)=60%。以上为举例说明,实际计算时,根据至少一个入口层服务接口与非入口层服务接口的调用关系,以及相同时间段内每个入口层服务接口调用非入口层服务接口的访问次数进行计算,得到每个入口层服务接口的访问次数占比。
[0089] 步骤S404,根据非入口层服务接口的最大访问次数与各个时间段每个入口层服务接口调用非入口层服务接口访问次数占比之积,得到每个入口层服务接口调用非入口层服务接口的各个时间段的最大访问次数。
[0090] 每个入口层服务接口调用非入口层服务接口的各个时间段的最大访问次数=非入口层服务接口的最大访问次数*各个时间段每个入口层服务接口调用非入口层服务接口访问次数占比。如非入口层服务接口的最大访问次数为50次,在0点0分至0点5分时间段,登录接口调用会员信息系统接口的访问次数占比为40%,首页接口调用会员信息系统接口的访问次数占比为60%,登录接口调用会员信息系统接口最大访问次数=50*40%=20次,首页接口调用会员信息系统接口最大访问次数=50*60%=30次。以上次数分别为登录接口和首页接口调用会员信息系统接口在0点0分至0点5分时间段的最大访问次数。根据统计的数据,可计算得到各时间段每个入口层服务接口调用非入口层服务接口的各个时间段的最大访问次数。
[0091] 可选地,对于特定日期,如购物服务器对于双11、双12等特定日期,仅使用历史时间段的访问次数可能不够准确,且有时对于特定日期会增加新的入口层服务接口,如双11会场专用接口。新的入口层服务接口没有历史访问数据,此时,可以通过预估方式调整特定日期的通过每个入口层服务接口调用非入口层服务接口的各个时间段的最大访问次数。
[0092] 步骤S405,加载包含非入口层服务接口的访问限流规则的配置信息。
[0093] 访问限流规则限定了每个入口层服务接口调用非入口层服务接口的各个时间段的最大访问次数。当非入口层服务所在的服务器启动后,加载对应的配置信息,从而使非入口层服务接口的访问限流规则生效,以便对非入口层服务接口的访问进行限流处理。
[0094] 可选地,访问限流规则还可以同时限定非入口层服务接口的最大访问次数,方便从多方面对非入口层服务接口进行限流处理,更好的保障系统稳定性。
[0095] 步骤S406,获取调用非入口层服务接口的入口层服务接口。
[0096] 当接收到非入口层服务接口的访问请求时,先根据访问请求,获取调用非入口层服务接口的入口层服务接口,以便对入口层服务接口的访问次数进行判断。
[0097] 步骤S407,判断非入口层服务接口的当前访问次数是否小于非入口层服务接口的最大访问次数。
[0098] 非入口层服务接口的初始化当前访问次数为0,初始化时间可以从每天的0点开始。在接收到当前对非入口层服务接口的访问时,先判断对非入口层服务接口的当前访问次数是否小于访问限流规则中限定的非入口层服务接口的最大访问次数,如会员信息系统接口最大访问次数为50次,若当前访问次数为30次,小于最大访问次数,则执行步骤S408;若当前访问次数为50次,不小于最大访问次数,则判断访问请求不符合访问限流规则,执行步骤S409。
[0099] 步骤S408,判断入口层服务接口调用非入口层服务接口的访问次数是否小于入口层服务接口调用非入口层服务接口的当前时间段的最大访问次数。
[0100] 入口层服务接口调用非入口层服务接口的当前时间段的初始化当前访问次数为0,初始化时间为当前时间段的开始时间。在获取到调用非入口层服务接口的具体入口层服务接口后,先判断该入口层服务接口调用非入口层服务接口的当前时间段的访问次数是否小于入口层服务接口调用非入口层服务接口的当前时间段的最大访问次数,如登录接口在
0点0分至0点5分时间段,调用会员信息系统接口最大访问次数为20次,若当前时间为0点3分,登录接口调用会员信息系统接口的访问次数为18次,小于最大访问次数,则执行步骤S411;若当前时间为0点3分,登录接口调用会员信息系统接口的访问次数为20次,不小于最大访问次数,判断访问请求不符合访问限流规则,执行步骤S409。
[0101] 步骤S409,对访问请求进行限流处理。
[0102] 步骤S410,将非入口层服务接口的返回值设置为空,并抛出业务异常。
[0103] 以上步骤参考图3实施例步骤S305-S306,在此不再赘述。
[0104] 步骤S411,统计非入口层服务接口的当前访问次数,和/或,统计入口层服务接口在当前时间段调用非入口层服务接口的访问次数。
[0105] 当非入口层服务接口的访问请求符合访问限流规则时,根据访问请求进行后续的正常业务处理,并将非入口层服务接口的当前访问次数加一,以统计非入口层服务接口的当前访问次数,方便对后续再接收到的访问请求进行判断,同时,根据当前访问请求对应的入口层服务接口,将入口层服务接口在当前时间段调用非入口层服务接口的访问次数也加一,方便后续进行判断。
[0106] 根据本发明提供的服务接口访问限流方法,通过判断非入口层服务接口的当前访问次数是否小于非入口层服务接口的最大访问次数,以及,入口层服务接口调用非入口层服务接口的访问次数是否小于入口层服务接口调用非入口层服务接口的当前时间段的最大访问次数,对非入口层服务接口进行限流处理,避免了对非入口层服务接口调用过多,或对入口层服务接口的访问过多,更好的保障系统稳定性。同时,访问限流规则根据入口层服务接口的历史访问数据动态生成,可以使得配置信息更贴合非入口层服务接口的访问实际,使得对服务接口访问限流更加合理,减少非入口层服务占用资源的浪费。
[0107] 图5示出了根据本发明一个实施例的服务接口访问限流装置的功能框图。如图5所示,服务接口访问限流装置包括如下模块:
[0108] 加载模块510,适于加载包含非入口层服务接口的访问限流规则的配置信息。
[0109] 对非入口层服务接口的访问一般由入口层服务接口调用产生,如图2a所示,入口层服务接口登录接口和首页接口会调用非入口层服务接口会员信息系统的接口。加载模块510通过对至少一个入口层服务接口的历史访问数据进行统计,可以得到至少一个入口层服务接口的历史实时的访问数据。加载模块510根据至少一个入口层服务接口的历史实时的访问数据,以及入口层服务接口与非入口层服务接口的调用关系,可以得到非入口层服务接口支撑入口层服务接口访问所需提供的服务。如图2b所示,加载模块510统计登录接口的访问数据与首页接口的访问数据,得到对应的访问数据曲线。将得到的登录接口的访问数据曲线与首页接口的访问数据曲线的值进行累计,加载模块510可以得到会员信息系统接口应提供的服务需达到的访问数据曲线,如图2c所示。若登录接口的访问数据的最大访问次数为x1,首页接口的访问数据的最大访问次数为x2,根据图2c所示的会员信息系统接口的访问数据曲线可知,会员信息系统接口的最大访问次数y远小于x1+x2的值。加载模块
510通过调用非入口层服务接口的至少一个入口层服务接口的历史访问数据,可以动态的得到如非入口层服务接口应提供的最大访问次数等,即访问限流规则可以依据调用非入口层服务接口的至少一个入口层服务接口的历史访问数据动态生成。根据当前时间,加载模块510可以依据相应的历史时期的调用非入口层服务接口的至少一个入口层服务接口的历史访问数据动态生成对非入口层服务接口的访问限流规则。
[0110] 为使访问限流规则更贴合实际,加载模块510在获取至少一个入口层服务接口的历史访问数据时,可以获取与当前时间具有相同属性关系的历史时间。如当前为周末,可以获取上一个周末至少一个入口层服务接口的访问数据,更贴合周末时用户访问入口层服务接口的情况;或者当前为周一,可以获取上一周周一至少一个入口层服务接口的访问数据等。
[0111] 包含非入口层服务接口的访问限流规则的配置信息中可以包含对多个非入口层服务接口的访问限流规则,加载模块510加载包含非入口层服务接口的访问限流规则的配置信息,以便对每个非入口层服务接口的访问进行限流处理。
[0112] 判断模块520,适于当接收到非入口层服务接口的访问请求时,根据当前访问次数判断访问请求是否符合访问限流规则;若否,则对访问请求进行限流处理。
[0113] 当接收到非入口层服务接口的访问请求时,判断模块520先根据当前对非入口层服务接口的访问次数进行判断,判断当前访问次数是否符合访问限流规则,若否,则对访问请求进行限流处理,如直接拒绝访问请求,不再使访问请求对服务器造成压力,以保障整个系统的稳定性。若是,则继续根据访问请求进行后续的正常业务处理。
[0114] 可选地,本装置还包括了以下模块:
[0115] 第一统计模块530,适于统计调用非入口层服务接口的至少一个入口层服务接口的对应的历史时间段访问次数;将相同时间点的至少一个入口层服务接口的历史访问次数累加之和的最大值作为非入口层服务接口的最大访问次数。
[0116] 根据非入口层服务接口与至少一个入口层服务接口的调用关系,第一统计模块530统计调用非入口层服务接口的至少一个入口层服务接口的对应的历史时间段访问次数。具体的,历史时间段可以为一天之内多个连续的时间段,每个时间段的时长可以根据实施情况设置,如5分钟。第一统计模块530按照连续时间段统计至少一个入口层服务接口在对应的历史时间段内的访问次数。
[0117] 第一统计模块530将调用同一个非入口层服务接口的至少一个入口层服务接口的对应的历史时间段访问次数按照相同时间点进行累加,如第一统计模块530将0点1分调用会员信息系统接口的登录接口的历史访问次数与0点1分调用会员信息系统接口的首页接口的历史访问次数相加,得到0点1分会员信息系统接口的访问次数,依次计算,第一统计模块530得到多个时间点的会员信息系统接口的访问次数。第一统计模块530将其中的最大值作为非入口层服务接口的最大访问次数。
[0118] 访问限流规则限定了非入口层服务接口的最大访问次数,判断模块520进一步适于判断当前访问次数是否小于非入口层服务接口的最大访问次数。非入口层服务接口的初始化当前访问次数为0,初始化时间可以从每天的0点开始。在接收到当前对非入口层服务接口的访问时,判断模块520先判断当前访问次数是否小于访问限流规则中限定的非入口层服务接口的最大访问次数,如会员信息系统接口最大访问次数为50次,若当前访问次数为30次,判断模块520判断小于最大访问次数,服务器可以根据访问请求进行后续的正常业务处理,并将当前访问次数加一;若当前访问次数为50次,判断模块520判断不小于最大访问次数,则判断模块520判断访问请求不符合访问限流规则,直接拒绝当前访问请求,以便对访问请求进行限流处理,保障系统稳定。
[0119] 第二统计模块540,适于根据调用非入口层服务接口的至少一个入口层服务接口的对应的历史时间段访问次数,对应的计算各个时间段每个入口层服务接口调用非入口层服务接口访问次数占比;根据非入口层服务接口的最大访问次数与各个时间段每个入口层服务接口调用非入口层服务接口访问次数占比之积,得到每个入口层服务接口调用非入口层服务接口的各个时间段的最大访问次数。
[0120] 具体的,如在某一历史时间0点0分至0点5分时间段,登录接口调用会员信息系统接口4次,首页接口调用会员信息系统接口6次,第二统计模块540计算得到登录接口调用会员信息系统接口的访问次数占比为4/(4+6)=40%,首页接口调用会员信息系统接口的访问次数占比为6/(4+6)=60%。以上为举例说明,实际计算时,第二统计模块540根据至少一个入口层服务接口与非入口层服务接口的调用关系,以及相同时间段内每个入口层服务接口调用非入口层服务接口的访问次数进行计算,得到每个入口层服务接口的访问次数占比。
[0121] 每个入口层服务接口调用非入口层服务接口的各个时间段的最大访问次数=非入口层服务接口的最大访问次数*各个时间段每个入口层服务接口调用非入口层服务接口访问次数占比。如非入口层服务接口的最大访问次数为50次,在0点0分至0点5分时间段,登录接口调用会员信息系统接口的访问次数占比为40%,首页接口调用会员信息系统接口的访问次数占比为60%,第二统计模块540计算得到登录接口调用会员信息系统接口最大访问次数=50*40%=20次,首页接口调用会员信息系统接口最大访问次数=50*60%=30次。以上次数分别为登录接口和首页接口调用会员信息系统接口在0点0分至0点5分时间段的最大访问次数。第二统计模块540根据统计的数据,可计算得到各时间段每个入口层服务接口调用非入口层服务接口的各个时间段的最大访问次数。
[0122] 访问限流规则限定了每个入口层服务接口调用非入口层服务接口的各个时间段的最大访问次数。判断模块520进一步适于判断入口层服务接口调用非入口层服务接口的访问次数是否小于入口层服务接口调用非入口层服务接口的当前时间段的最大访问次数。入口层服务接口调用非入口层服务接口的当前时间段的初始化当前访问次数为0,初始化时间为当前时间段的开始时间。在获取到调用非入口层服务接口的具体入口层服务接口后,判断模块520先判断该入口层服务接口调用非入口层服务接口的当前时间段的访问次数是否小于入口层服务接口调用非入口层服务接口的当前时间段的最大访问次数,如登录接口在0点0分至0点5分时间段,调用会员信息系统接口最大访问次数为20次,若当前时间为0点3分,登录接口调用会员信息系统接口的访问次数为18次,判断模块520判断小于最大访问次数,根据访问请求进行后续的正常业务处理,并将入口层服务接口在当前时间段调用非入口层服务接口的访问次数加一;若当前时间为0点3分,登录接口调用会员信息系统接口的访问次数为20次,判断模块520判断不小于最大访问次数,判断访问请求不符合访问限流规则,对访问请求进行限流处理。
[0123] 调整模块550,适于调整特定日期的非入口层服务接口的最大访问次数,和/或,调整特定日期的通过每个入口层服务接口调用非入口层服务接口的各个时间段的最大访问次数。
[0124] 对于特定日期,如购物服务器对于双11、双12等特定日期,仅使用历史时间段的访问次数可能不够准确,此时,调整模块550可以通过预估方式调整特定日期的非入口层服务接口的最大访问次数,以应对突发的大量访问次数的可能性。进一步,对于特定日期可能会增加新的入口层服务接口,如双11会场专用接口。新的入口层服务接口没有历史访问数据,此时,调整模块550可以通过预估方式调整特定日期的通过每个入口层服务接口调用非入口层服务接口的各个时间段的最大访问次数。
[0125] 异常模块560,适于将非入口层服务接口的返回值设置为空,并抛出业务异常。
[0126] 为提供给用户良好的使用体验,异常模块560可以在对限流处理后,将非入口层服务接口的返回值设置为空,并抛出相应的业务异常,以便对业务异常进行相关处理,如异常模块560提示用户当前服务器正忙,请耐心等待;或者异常模块560提示登录中进度进程等,使用户无感知对访问请求的限流处理,也缓解服务器处理压力。
[0127] 根据本发明提供的服务接口访问限流装置,加载包含非入口层服务接口的访问限流规则的配置信息,其中,访问限流规则依据调用非入口层服务接口的至少一个入口层服务接口的历史访问数据动态生成;当接收到非入口层服务接口的访问请求时,根据当前访问次数判断访问请求是否符合访问限流规则;若否,则对访问请求进行限流处理。本发明利用调用非入口层服务接口的至少一个入口层服务接口的历史访问数据动态生成对非入口层服务接口的访问限流规则,可以使得配置信息更贴合非入口层服务接口的访问实际,使得对服务接口访问限流更加合理,减少占用资源的浪费。
[0128] 本申请还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的服务接口访问限流方法。
[0129] 图6示出了根据本发明一个实施例的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
[0130] 如图6所示,该电子设备可以包括:处理器(processor)602、通信接口(Communications Interface)604、存储器(memory)606、以及通信总线608。
[0131] 其中:
[0132] 处理器602、通信接口604、以及存储器606通过通信总线608完成相互间的通信。
[0133] 通信接口604,用于与其它设备比如客户端或其它服务器等的网元通信。
[0134] 处理器602,用于执行程序610,具体可以执行上述服务接口访问限流方法实施例中的相关步骤。
[0135] 具体地,程序610可以包括程序代码,该程序代码包括计算机操作指令。
[0136] 处理器602可能是中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
[0137] 存储器606,用于存放程序610。存储器606可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0138] 程序610具体可以用于使得处理器602执行上述任意方法实施例中的服务接口访问限流方法。程序610中各步骤的具体实现可以参见上述服务接口访问限流实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
[0139] 在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0140] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0141] 类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
[0142] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0143] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0144] 本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的服务接口访问限流装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0145] 应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈