CN105656855A - 资源访问的控制方法和装置 - Google Patents

资源访问的控制方法和装置 Download PDF

Info

Publication number
CN105656855A
CN105656855A CN201410649594.9A CN201410649594A CN105656855A CN 105656855 A CN105656855 A CN 105656855A CN 201410649594 A CN201410649594 A CN 201410649594A CN 105656855 A CN105656855 A CN 105656855A
Authority
CN
China
Prior art keywords
resource
system external
external resource
described system
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410649594.9A
Other languages
English (en)
Other versions
CN105656855B (zh
Inventor
龚磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Nova Technology Singapore Holdings Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201410649594.9A priority Critical patent/CN105656855B/zh
Publication of CN105656855A publication Critical patent/CN105656855A/zh
Application granted granted Critical
Publication of CN105656855B publication Critical patent/CN105656855B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种资源访问的控制方法和装置。其中,该方法包括:接收用于访问系统外部资源的访问请求;获取系统外部资源的访问阈值,其中,该访问阈值根据系统外部资源的异常调用次数来确定;获取在接收时刻系统记录的正被调用的系统外部资源的资源数量;比较正被调用的系统外部资源的资源数量与系统外部资源的访问阈值的大小;在正被调用的系统外部资源的资源数量大于系统外部资源的访问阈值时,不允许系统调用系统外部资源;在正被调用的系统外部资源的资源数量不大于系统外部资源的访问阈值时,允许系统调用系统外部资源。采用本申请,解决了由于外部资源发生故障导致该资源的上层系统宕机的问题,实现了有效控制对系统外部资源的访问。

Description

资源访问的控制方法和装置
技术领域
本申请涉及互联网领域,具体而言,涉及一种资源访问的控制方法和装置。
背景技术
现有技术中,一个系统通常情况下都会依赖很多外部的资源,比如其他系统提供的第三方服务,数据库以及其他资源等等,简单的系统结构图如图1所示。
如图1所示的系统,假设某个第三方服务发生故障无法提供正常服务,系统依然会去尝试与提供第三方服务的系统建立连接,但由于第三方系统无法正常工作,可能会导致系统大量的资源短时间内无法释放,从而耗尽系统所有的资源而引发系统宕机。由此,会由于某个资源发生故障导致依赖该资源的上层系统发生连锁故障,从而可能导致上层系统崩溃。
现有技术中,针对此类问题一般的解决方案是针对依赖的外部资源设置访问超时时间,超时后通过抛出系统异常的方式来释放已经被占用的连接资源。但是采用这样的处理方式仍存在如下缺陷:
(1)需要系统针对不同的资源的异常进行单独处理;(2)处理速度慢,无法处理短时间内产生大量的异常的场景;(3)异常处理本身又会占用极大的系统资源。
针对现有技术中由于某个外部资源发生故障导致依赖该资源的上层系统发生连锁故障,从而可能导致上层系统崩溃的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中由于某个外部资源发生故障导致依赖该资源的上层系统发生连锁故障,从而可能导致上层系统崩溃的问题,目前尚未提出有效的解决方案,为此,本申请的主要目的在于提供一种资源访问的控制方法和装置,以解决上述问题。
为了实现上述目的,根据本申请的一个方面,提供了一种资源访问的控制方法,该方法包括:接收用于访问系统外部资源的访问请求;获取系统外部资源的访问阈值,其中,系统外部资源的访问阈值为根据系统外部资源的异常调用次数来确定;获取在接收时刻系统记录的正被调用的系统外部资源的资源数量,其中,接收时刻为接收到访问请求的时刻;比较正被调用的系统外部资源的资源数量与系统外部资源的访问阈值的大小;在正被调用的系统外部资源的资源数量大于系统外部资源的访问阈值时,不允许系统调用系统外部资源;在正被调用的系统外部资源的资源数量不大于系统外部资源的访问阈值时,允许系统调用系统外部资源。
进一步地,获取系统外部资源的访问阈值包括:获取在接收时刻系统记录的系统外部资源的异常调用次数;判断系统外部资源的资源异常调用次数是否超过预设异常调用阈值;在系统外部资源的资源异常调用次数超过预设异常调用阈值的情况下,设置预先保存的第一访问量为系统外部资源的访问阈值;在系统外部资源的资源异常调用次数不超过预设异常调用阈值的情况下,设置预先保存的第二访问量为系统外部资源的访问阈值,其中,第一访问量小于第二访问量。
进一步地,获取在接收时刻系统记录的系统外部资源的异常调用次数包括:统计异常统计周期内系统调用系统外部资源异常的次数;获取在接收时刻所属的异常统计周期内,异常调用系统外部资源的异常调用次数。
进一步地,在允许调用系统资源的情况下,将系统记录的正被调用的系统外部资源的资源数量加一,并通知系统允许系统调用系统外部资源,以执行访问请求;在通知系统允许系统调用系统外部资源之后,控制方法还包括:判断系统在调用系统外部资源时是否发生异常;若系统在调用系统外部资源时未发生异常,则将在系统调用系统外部资源结束时系统记录的系统外部资源的资源数量减一;若系统在调用系统外部资源时发生异常,则将系统外部资源的异常调用次数加一。
进一步地,若系统在调用系统外部资源时发生异常,则将系统外部资源的异常调用次数加一的步骤包括:检测系统调用系统外部资源发生异常的时刻是否在异常统计周期内;若系统调用系统外部资源发生异常的时刻在异常统计周期内,则将系统外部资源的异常调用次数加一。
进一步地,系统为网站系统,系统外部资源为调用第三方服务所需的资源或数据库资源。
为了实现上述目的,根据本申请的另一方面,提供了一种资源访问的控制装置,该装置包括:接收模块,用于接收用于访问系统外部资源的访问请求;第一获取模块,用于获取系统外部资源的访问阈值,其中,系统外部资源的访问阈值为根据系统外部资源的异常调用次数来确定;第二获取模块,用于获取在接收时刻系统记录的正被调用的系统外部资源的资源数量,其中,接收时刻为接收到访问请求的时刻;比较模块,用于比较正被调用的系统外部资源的资源数量与系统外部资源的访问阈值的大小;第一控制模块,用于在正被调用的系统外部资源的资源数量大于系统外部资源的访问阈值时,不允许系统调用系统外部资源;第二控制模块,用于在正被调用的系统外部资源的资源数量不大于系统外部资源的访问阈值时,允许系统调用系统外部资源。
进一步地,第一获取模块包括:第一获取子模块,用于获取在接收时刻系统记录的系统外部资源的异常调用次数;判断子模块,用于判断系统外部资源的资源异常调用次数是否超过预设异常调用阈值;第一设置模块,用于在系统外部资源的资源异常调用次数超过预设异常调用阈值的情况下,设置预先保存的第一访问量为系统外部资源的访问阈值;第二设置模块,用于在系统外部资源的资源异常调用次数不超过预设异常调用阈值的情况下,设置预先保存的第二访问量为系统外部资源的访问阈值,其中,第一访问量小于第二访问量。
进一步地,第一获取子模块包括:统计模块,用于统计异常统计周期内系统调用系统外部资源异常的次数;次数获取模块,用于获取在接收时刻所属的异常统计周期内,异常调用系统外部资源的异常调用次数。
进一步地,控制装置还包括:通知模块,用于在允许调用系统资源的情况下,将系统记录的正被调用的系统外部资源的资源数量加一,并通知系统允许系统调用系统外部资源,以执行访问请求;判断模块,用于在通知系统允许系统调用系统外部资源之后,判断系统在调用系统外部资源时是否发生异常;第一计数模块,用于若系统在调用系统外部资源时未发生异常,则将在系统调用系统外部资源结束时系统记录的系统外部资源的资源数量减一;第二计数模块,用于若系统在调用系统外部资源时发生异常,则将系统外部资源的异常调用次数加一。
进一步地,第二计数模块包括:检测模块,用于检测系统调用系统外部资源发生异常的时刻是否在异常统计周期内;计数子模块,用于若系统调用系统外部资源发生异常的时刻在异常统计周期内,则将系统外部资源的异常调用次数加一。
进一步地,系统为网站系统,系统外部资源为调用第三方服务所需的资源或数据库资源。
采用本申请,在接收到访问系统外部资源的访问请求之后,获取通过系统外部资源的异常调用次数确定的访问阈值,然后获取接收访问请求的时刻系统外部资源正被调用的资源数量,比较资源数量与访问阈值的大小,在资源数量不超过预设资源访问量时,才允许访问系统外部资源;若接收时刻正被调用的资源数量超过访问阈值,则不允许调用该系统外部资源,也即禁止调用第三方服务的资源或数据库。通过本申请实施例,可以按照系统在接收到访问请求的时刻系统外部资源正被调用的资源数量和该资源的异常调用次数来确定是否允许调用该资源,通过该方法可以控制系统外部资源的使用,解决了由于某个外部资源发生故障导致依赖该资源的上层系统发生连锁故障,从而引起上层系统宕机的问题,实现了有效控制对系统外部资源的调用的效果,使用该方法实施例即便是系统的某个外部资源发生故障,也不会影响到系统。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据现有技术的系统架构图;
图2是根据本申请实施例的资源访问的控制方法的流程图;
图3是根据本申请实施例的系统架构图;
图4是根据本申请实施例的一种可选的资源访问的控制方法的流程图;以及
图5是根据本申请实施例的资源访问的控制装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图2是根据本申请实施例的资源访问的控制方法的流程图,如图2所示该方法包括如下步骤:
步骤S202,接收用于访问系统外部资源的访问请求。
步骤S204,获取系统外部资源的访问阈值,其中,系统外部资源的访问阈值为根据系统外部资源的异常调用次数来确定。
步骤S206,获取在接收时刻系统记录的正被调用的系统外部资源的资源数量,其中,接收时刻为接收到访问请求的时刻。
步骤S208,比较正被调用的系统外部资源的资源数量与系统外部资源的访问阈值的大小。
步骤S210,在正被调用的系统外部资源的资源数量大于系统外部资源的访问阈值时,不允许系统调用系统外部资源。
步骤S212,在正被调用的系统外部资源的资源数量不大于系统外部资源的访问阈值时,允许系统调用系统外部资源。
采用本申请,在接收到访问系统外部资源的访问请求之后,获取通过系统外部资源的异常调用次数确定的访问阈值,然后获取接收访问请求的时刻系统外部资源正被调用的资源数量,比较资源数量与访问阈值的大小,在资源数量不超过预设资源访问量时,才允许访问系统外部资源;若接收时刻正被调用的资源数量超过访问阈值,则不允许调用该系统外部资源,也即禁止调用第三方服务的资源或数据库。通过本申请实施例,可以按照系统在接收到访问请求的时刻系统外部资源正被调用的资源数量和该资源的异常调用次数来确定是否允许调用该资源,通过该方法可以控制系统外部资源的使用,解决了由于某个外部资源发生故障导致依赖该资源的上层系统发生连锁故障,从而可能导致上层系统崩溃的问题,实现了有效控制对系统外部资源的调用的效果,使用该方法实施例即便是系统的某个外部资源发生故障,也不会影响到系统。
在本申请的上述实施例中,系统可以为网站系统,系统外部资源为调用第三方服务所需的资源或数据库资源,资源访问请求为调用第三方服务和/或数据库所需调用网站系统的系统资源的请求。
下面结合图3详细介绍本申请实施例。如图3所示,可以在网络系统中增加外部资源集成模块。
如图3所示的系统10(即为上述实施例中的网站系统),可以在系统中增加单独的外部资源的资源集成模块17,用来管理各类外部资源(如:第三方服务11、数据库13以及其他资源15)。下面以第三方服务集成为例详细介绍本申请实施例的资源集成模块对资源的管理方法:外部资源的标准包结构为:第三方服务系统名.第三方服务类名+client.服务方法名,其中的服务方法名可以为服务标记。可选地,数据库及其他资源的数据包的结构与此类似。
在本申请的上述实施例中,通过资源集成模块控制系统外部资源的访问。
通过本申请上述实施例,通过建立一种资源访问标准及资源访问异常监控、异常统计、控制等方案实现对外部资源的统一管理,对异常的资源及时清理,实现了自动检测外部资源异常及异常自动隔离,避免浪费系统资源,并且可以达到保障系统高可用的效果。
根据本申请的上述实施例,获取系统外部资源的访问阈值可以包括:获取在接收时刻系统记录的系统外部资源的异常调用次数;判断系统外部资源的资源异常调用次数是否超过预设异常调用阈值;在系统外部资源的资源异常调用次数超过预设异常调用阈值的情况下,设置预先保存的第一访问量为系统外部资源的访问阈值;在系统外部资源的资源异常调用次数不超过预设异常调用阈值的情况下,设置预先保存的第二访问量为系统外部资源的访问阈值,其中,第一访问量小于第二访问量。
具体地,可以针对每一个系统外部资源,根据不同的访问量及重要程度设定一个可访问最大资源数(MAX)、最小资源数(MIN)以及单位时间内允许的最大异常调用次数(EMAX)。具体到上述实施例中,可访问最大资源数(MAX)即为上述的第二访问量;可访问最小资源数(MIN)即为上述的第一访问量;单位时间允许的最大异常调用次数(EMAX)即为上述的预设异常调用阈值。
需要进一步说明的是,获取在接收时刻系统记录的系统外部资源的异常调用次数可以包括:统计异常统计周期内系统调用系统外部资源异常的次数;获取在接收时刻所属的异常统计周期内,异常调用系统外部资源的异常调用次数。
下面以调用第三方服务为例详细介绍本申请:
在接收到调用第三方服务的访问请求之后,在调用第三方服务之前,资源集成模块检测单位时间(即上述实施例中的异常统计周期)内的该第三方服务的资源的异常调用次数,如果当前资源的异常调用次数超过允许的最大值(即上述实施例中的预设异常调用阈值),将该第三方服务的访问阈值设置为第一访问值;如果当前资源的异常调用次数未超过允许的最大值(即上述实施例中的预设异常调用阈值),将该第三方服务的访问阈值设置为第二访问值。
其中,上述的第一访问值和第二访问值均为预设的值。上述实施例中的设置可以通过计算机程序将预设资源访问量的值修改为第一访问值或第二访问值。
根据本发明的上述实施例,在允许调用系统资源的情况下,将系统记录的正被调用的系统外部资源的资源数量加一,并通知系统允许系统调用系统外部资源,以执行访问请求;在通知系统允许系统调用系统外部资源之后,控制方法还可以包括:判断系统在调用系统外部资源时是否发生异常;若系统在调用系统外部资源时未发生异常,则将在系统调用系统外部资源结束时系统记录的系统外部资源的资源数量减一;若系统在调用系统外部资源时发生异常,则将系统外部资源的异常调用次数加一。
具体地,若正被调用的系统外部资源的资源数量不大于系统外部资源的访问阈值,则允许系统调用系统外部资源,资源集成模块通知系统可以调用系统外部资源,系统调用该第三方服务的资源以执行第三方服务。
可选地,可以在资源集成模块通知系统允许其调用系统外部资源的同时或之后,将当前的资源调用数量的统计周期内的资源数量加一。资源集成模块还可以获取系统调用系统外部资源的调用结果,根据调用结果判断在调用系统外部资源时是否发生异常,若系统在调用系统外部资源时未发生异常,则将在系统调用系统外部资源结束时系统记录的系统外部资源的资源数量减一;若系统在调用系统外部资源时发生异常,则将系统外部资源的异常调用次数加一。
进一步地,若系统在调用系统外部资源时发生异常,则将系统外部资源的异常调用次数加一的步骤可以包括:检测系统调用系统外部资源发生异常的时刻是否在异常统计周期内;若系统调用系统外部资源发生异常的时刻在异常统计周期内,则将系统外部资源的异常调用次数加一。
通过上述实施例,实时地更新系统调用系统外部资源的资源数量和系统外部资源的异常调用次数,可以在下次调用第三方服务之前,比较实时的正被调用的资源数量与访问阈值的大小,从而使得比较结果更加准确。
在本发明的上述实施例中,正被调用的资源数量和异常调用次数均是在固定的统计周期内统计,在固定的统计周期内统计,可以在当前的统计周期结束之后,将该统计周期内的计数全部清零,释放内存空间,并且以统计周期为单位,减小了数据比较的复杂度,可以加快处理速度。
下面结合图4以调用第三方服务为例,详细介绍本申请。如图4所示,本申请实施例可以包括如下步骤:
步骤S401:获取当前资源的异常调用次数E。
具体地,当前资源为系统外部资源,如第三方服务的资源或数据库,在该示例中为执行第三方服务所需的资源。
步骤S402:比较当前资源的异常调用次数E与允许的最大异常调用次数EMAX,得到比较结果。
其中,允许的最大异常调用次数EMAX即为上述的预设异常调用阈值。
步骤S403:根据比较结果设置访问阈值R。
具体地,在当前资源的异常调用次数E超过允许的最大异常调用次数EMAX的情况下,设置访问阈值为第一访问量;在当前资源异常调用次数E不超过允许的最大异常调用次数EMAX的情况下,设置访问阈值为第二访问量。
步骤S404:获取系统正被调用的系统外部资源的资源数量T。
其中,系统正被调用的系统外部资源的资源数量为上述实施例中在接收时刻正被系统调用的系统外部资源的资源数量。
在上述实施例中,若当前资源的异常调用次数E超过允许的最大异常调用次数EMAX,则确定系统服务器的资源调用压力很大,则设置一个较小的访问阈值;若当前资源的异常调用次数E不超过允许的最大异常调用次数EMAX,则确定服务器还可以承载一定的资源调用的压力,则可以设置一个较大的访问阈值。
通过上述实施例,可以通过服务器当前的资源调用压力动态的设置系统外部资源的访问阈值,从而可以进一步地优化服务器的资源调用,减少系统资源的浪费。
步骤S405:比较资源数量T与访问阈值R的大小。
其中,如果资源数量T大于资源可用数量R(即上述实施例中访问阈值),表示此时不能访问第三方服务,放弃本次调用,执行步骤S406;如果资源数量T不大于资源可用数量R,表示此时可以访问第三方服务,执行步骤S407。
步骤S406:如果资源数量T大于访问阈值R,禁止调用第三方服务。
步骤S407:如果资源数量T不大于访问阈值R,将当前的使用资源数加一。
具体地,将当前统计周期内的资源数量的值加一。
步骤S408:通知系统允许系统调用第三方服务的资源。
具体地,可以调用资源访问请求所请求访问的系统外部资源,以执行第三方服务。
步骤S409:在系统调用第三方服务的资源之后将正被调用的资源数量减一。
步骤S410:获取系统执行第三方服务的执行结果。
步骤S411:在执行结果指示执行第三方服务失败的情况下,将网站系统的当前资源的当前统计周期内的异常调用次数加一。
具体地,如果当前服务调用异常,需要检查当前时间是否在异常统计的周期内,如果在需要增加一次异常调用次数。
需要进一步说明的是,在系统调用系统外部资源之后,控制方法还可以包括:释放系统调用的系统外部资源。
通过本申请上述实施例,通过建立一种资源访问标准及资源访问异常监控、异常统计、控制等方案实现对外部资源的统一管理,对异常的资源及时清理,实现了自动检测外部资源异常及异常自动隔离,避免浪费系统资源,并且可以达到保障系统高可用的效果。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图5是根据本申请实施例的资源访问的控制装置的示意图,如图5所示,该控制装置可以包括:接收模块10用于接收用于访问系统外部资源的访问请求;第一获取模块30用于获取系统外部资源的访问阈值,其中,系统外部资源的访问阈值为根据系统外部资源的异常调用次数来确定;第二获取模块50用于获取在接收时刻系统记录的正被调用的系统外部资源的资源数量,其中,接收时刻为接收到访问请求的时刻;比较模块70用于比较正被调用的系统外部资源的资源数量与系统外部资源的访问阈值的大小;第一控制模块90用于在正被调用的系统外部资源的资源数量大于系统外部资源的访问阈值时,不允许系统调用系统外部资源;第二控制模块110用于在正被调用的系统外部资源的资源数量不大于系统外部资源的访问阈值时,允许系统调用系统外部资源。
采用本申请,在接收到访问系统外部资源的访问请求之后,获取通过系统外部资源的异常调用次数确定的访问阈值,然后获取接收访问请求的时刻系统外部资源正被调用的资源数量,比较资源数量与访问阈值的大小,在资源数量不超过预设资源访问量时,才允许访问系统外部资源;若接收时刻正被调用的资源数量超过访问阈值,则不允许调用该系统外部资源,也即禁止调用第三方服务的资源或数据库。通过本申请实施例,可以按照系统在接收到访问请求的时刻系统外部资源正被调用的资源数量和该资源的异常调用次数来确定是否允许调用该资源,通过该方法可以控制系统外部资源的使用,解决了由于某个外部资源发生故障导致依赖该资源的上层系统发生连锁故障,从而可能导致上层系统崩溃的问题,实现了有效控制对系统外部资源的调用的效果,使用该方法实施例即便是系统的某个外部资源发生故障,也不会影响到系统。
在本申请的上述实施例中,系统可以为网站系统,系统外部资源为调用第三方服务所需的资源或数据库资源,资源访问请求为调用第三方服务和/或数据库所需调用网站系统的系统资源的请求。
如图3所示的系统10(即为上述实施例中的网站系统),可以在系统中增加单独的外部资源的资源集成模块17,用来管理各类外部资源(如:第三方服务11、数据库13以及其他资源15)。下面以第三方服务集成为例详细介绍本申请实施例的资源集成模块对资源的管理方法:外部资源的标准包结构为:第三方服务系统名.第三方服务类名+client.服务方法名,其中的服务方法名可以为服务标记。可选地,数据库及其他资源的数据包的结构与此类似。
在本申请的上述实施例中,通过资源集成模块控制系统外部资源的访问。
通过本申请上述实施例,通过建立一种资源访问标准及资源访问异常监控、异常统计、控制等方案实现对外部资源的统一管理,对异常的资源及时清理,实现了自动检测外部资源异常及异常自动隔离,避免浪费系统资源,并且可以达到保障系统高可用的效果。
根据本申请的上述实施例,第一获取模块可以包括:第一获取子模块,用于获取在接收时刻系统记录的系统外部资源的异常调用次数;判断子模块,用于判断系统外部资源的资源异常调用次数是否超过预设异常调用阈值;第一设置模块,用于在系统外部资源的资源异常调用次数超过预设异常调用阈值的情况下,设置预先保存的第一访问量为系统外部资源的访问阈值;第二设置模块,用于在系统外部资源的资源异常调用次数不超过预设异常调用阈值的情况下,设置预先保存的第二访问量为系统外部资源的访问阈值,其中,第一访问量小于第二访问量。
具体地,可以针对每一个系统外部资源,根据不同的访问量及重要程度设定一个可访问最大资源数(MAX)、最小资源数(MIN)以及单位时间内允许的最大异常调用次数(EMAX)。具体到上述实施例中,可访问最大资源数(MAX)即为上述的第二访问量;可访问最小资源数(MIN)即为上述的第一访问量;单位时间允许的最大异常调用次数(EMAX)即为上述的预设异常调用阈值。
需要进一步说明的是,第一获取子模块可以包括:统计模块,用于统计异常统计周期内系统调用系统外部资源异常的次数;次数获取模块,用于获取在接收时刻所属的异常统计周期内,异常调用系统外部资源的异常调用次数。
其中,上述的第一访问值和第二访问值均为预设的值。上述实施例中的设置可以通过计算机程序将预设资源访问量的值修改为第一访问值或第二访问值。
根据本发明的上述实施例,控制装置还可以包括:通知模块,用于在允许调用系统资源的情况下,将系统记录的正被调用的系统外部资源的资源数量加一,并通知系统允许系统调用系统外部资源,以执行访问请求;判断模块,用于在通知系统允许系统调用系统外部资源之后,判断系统在调用系统外部资源时是否发生异常;第一计数模块,用于若系统在调用系统外部资源时未发生异常,则将在系统调用系统外部资源结束时系统记录的系统外部资源的资源数量减一;第二计数模块,用于若系统在调用系统外部资源时发生异常,则将系统外部资源的异常调用次数加一。
具体地,若正被调用的系统外部资源的资源数量不大于系统外部资源的访问阈值,则允许系统调用系统外部资源,资源集成模块通知系统可以调用系统外部资源,系统调用该第三方服务的资源以执行第三方服务。
可选地,可以在资源集成模块通知系统允许其调用系统外部资源的同时或之后,将当前的资源调用数量的统计周期内的资源数量加一。资源集成模块还可以获取系统调用系统外部资源的调用结果,根据调用结果判断在调用系统外部资源时是否发生异常,若系统在调用系统外部资源时未发生异常,则将在系统调用系统外部资源结束时系统记录的系统外部资源的资源数量减一;若系统在调用系统外部资源时发生异常,则将系统外部资源的异常调用次数加一。
进一步地,第二计数模块可以包括:检测模块,用于检测系统调用系统外部资源发生异常的时刻是否在异常统计周期内;计数子模块,用于若系统调用系统外部资源发生异常的时刻在异常统计周期内,则将系统外部资源的异常调用次数加一。
通过上述实施例,实时地更新系统调用系统外部资源的资源数量和系统外部资源的异常调用次数,可以在下次调用第三方服务之前,比较实时的正被调用的资源数量与访问阈值的大小,从而使得比较结果更加准确。
在本发明的上述实施例中,正被调用的资源数量和异常调用次数均是在固定的统计周期内统计,在固定的统计周期内统计,可以在当前的统计周期结束之后,将该统计周期内的计数全部清零,释放内存空间,并且以统计周期为单位,减小了数据比较的复杂度,可以加快处理速度。
根据本申请的上述实施例,控制装置还可以包括:资源处理模块,用于在系统调用系统外部资源之后,控制方法还可以包括:释放系统调用的系统外部资源。
本实施例中所提供的各个模块与方法实施例对应步骤所提供的使用方法相同、应用场景也可以相同。当然,需要注意的是,上述模块涉及的方案可以不限于方法实施例中的内容和场景,且上述模块可以运行在计算机终端或移动终端,可以通过软件或硬件实现。
从以上的描述中,可以看出,本申请实现了如下技术效果:
采用本申请,在接收到访问系统外部资源的访问请求之后,获取通过系统外部资源的异常调用次数确定的访问阈值,然后获取接收访问请求的时刻系统外部资源正被调用的资源数量,比较资源数量与访问阈值的大小,在资源数量不超过预设资源访问量时,才允许访问系统外部资源;若接收时刻正被调用的资源数量超过访问阈值,则不允许调用该系统外部资源,也即禁止调用第三方服务的资源或数据库。通过本申请实施例,可以按照系统在接收到访问请求的时刻系统外部资源正被调用的资源数量和该资源的异常调用次数来确定是否允许调用该资源,通过该方法可以控制系统外部资源的使用,解决了由于某个外部资源发生故障导致依赖该资源的上层系统发生连锁故障,从而可能导致上层系统崩溃的问题,实现了有效控制对系统外部资源的调用的效果,使用该方法实施例即便是系统的某个外部资源发生故障,也不会影响到系统。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (12)

1.一种资源访问的控制方法,其特征在于,包括:
接收用于访问系统外部资源的访问请求;
获取所述系统外部资源的访问阈值,其中,所述系统外部资源的访问阈值为根据所述系统外部资源的异常调用次数来确定;
获取在接收时刻系统记录的正被调用的所述系统外部资源的资源数量,其中,所述接收时刻为接收到所述访问请求的时刻;
比较所述正被调用的所述系统外部资源的资源数量与所述系统外部资源的访问阈值的大小;
在所述正被调用的所述系统外部资源的资源数量大于所述系统外部资源的访问阈值时,不允许所述系统调用所述系统外部资源;
在所述正被调用的所述系统外部资源的资源数量不大于所述系统外部资源的访问阈值时,允许所述系统调用所述系统外部资源。
2.根据权利要求1所述的控制方法,其特征在于,获取所述系统外部资源的访问阈值包括:
获取在所述接收时刻所述系统记录的所述系统外部资源的异常调用次数;
判断所述系统外部资源的资源异常调用次数是否超过预设异常调用阈值;
在所述系统外部资源的资源异常调用次数超过所述预设异常调用阈值的情况下,设置预先保存的第一访问量为所述系统外部资源的访问阈值;
在所述系统外部资源的资源异常调用次数不超过所述预设异常调用阈值的情况下,设置预先保存的第二访问量为所述系统外部资源的访问阈值,
其中,所述第一访问量小于所述第二访问量。
3.根据权利要求2所述的控制方法,其特征在于,获取在所述接收时刻所述系统记录的所述系统外部资源的所述异常调用次数包括:
统计异常统计周期内所述系统调用所述系统外部资源异常的次数;
获取在所述接收时刻所属的所述异常统计周期内,异常调用所述系统外部资源的所述异常调用次数。
4.根据权利要求1所述的控制方法,其特征在于,
在允许调用所述系统资源的情况下,将所述系统记录的所述正被调用的所述系统外部资源的资源数量加一,并通知所述系统允许所述系统调用所述系统外部资源,以执行所述访问请求;
在通知所述系统允许所述系统调用所述系统外部资源之后,所述控制方法还包括:
判断所述系统在调用所述系统外部资源时是否发生异常;
若所述系统在调用所述系统外部资源时未发生异常,则将在所述系统调用所述系统外部资源结束时所述系统记录的所述系统外部资源的资源数量减一;
若所述系统在调用所述系统外部资源时发生异常,则将所述系统外部资源的异常调用次数加一。
5.根据权利要求4所述的控制方法,其特征在于,若所述系统在调用所述系统外部资源时发生异常,则将所述系统外部资源的异常调用次数加一的步骤包括:
检测所述系统调用所述系统外部资源发生异常的时刻是否在异常统计周期内;
若所述系统调用所述系统外部资源发生异常的时刻在所述异常统计周期内,则将所述系统外部资源的异常调用次数加一。
6.根据权利要求1至5中任意一项所述的控制方法,其特征在于,所述系统为网站系统,所述系统外部资源为调用第三方服务所需的资源或数据库资源。
7.一种资源访问的控制装置,其特征在于,包括:
接收模块,用于接收用于访问系统外部资源的访问请求;
第一获取模块,用于获取所述系统外部资源的访问阈值,其中,所述系统外部资源的访问阈值为根据所述系统外部资源的异常调用次数来确定;
第二获取模块,用于获取在接收时刻系统记录的正被调用的所述系统外部资源的资源数量,其中,所述接收时刻为接收到所述访问请求的时刻;
比较模块,用于比较所述正被调用的所述系统外部资源的资源数量与所述系统外部资源的访问阈值的大小;
第一控制模块,用于在所述正被调用的所述系统外部资源的资源数量大于所述系统外部资源的访问阈值时,不允许所述系统调用所述系统外部资源;
第二控制模块,用于在所述正被调用的所述系统外部资源的资源数量不大于所述系统外部资源的访问阈值时,允许所述系统调用所述系统外部资源。
8.根据权利要求7所述的控制装置,其特征在于,所述第一获取模块包括:
第一获取子模块,用于获取在所述接收时刻所述系统记录的所述系统外部资源的异常调用次数;
判断子模块,用于判断所述系统外部资源的资源异常调用次数是否超过预设异常调用阈值;
第一设置模块,用于在所述系统外部资源的资源异常调用次数超过所述预设异常调用阈值的情况下,设置预先保存的第一访问量为所述系统外部资源的访问阈值;
第二设置模块,用于在所述系统外部资源的资源异常调用次数不超过所述预设异常调用阈值的情况下,设置预先保存的第二访问量为所述系统外部资源的访问阈值,
其中,所述第一访问量小于所述第二访问量。
9.根据权利要求8所述的控制装置,其特征在于,所述第一获取子模块包括:
统计模块,用于统计异常统计周期内所述系统调用所述系统外部资源异常的次数;
次数获取模块,用于获取在所述接收时刻所属的所述异常统计周期内,异常调用所述系统外部资源的所述异常调用次数。
10.根据权利要求7所述的控制装置,其特征在于,所述控制装置还包括:
通知模块,用于在允许调用所述系统资源的情况下,将所述系统记录的所述正被调用的所述系统外部资源的资源数量加一,并通知所述系统允许所述系统调用所述系统外部资源,以执行所述访问请求;
判断模块,用于在通知所述系统允许所述系统调用所述系统外部资源之后,判断所述系统在调用所述系统外部资源时是否发生异常;
第一计数模块,用于若所述系统在调用所述系统外部资源时未发生异常,则将在所述系统调用所述系统外部资源结束时所述系统记录的所述系统外部资源的资源数量减一;
第二计数模块,用于若所述系统在调用所述系统外部资源时发生异常,则将所述系统外部资源的异常调用次数加一。
11.根据权利要求10所述的控制装置,其特征在于,所述第二计数模块包括:
检测模块,用于检测所述系统调用所述系统外部资源发生异常的时刻是否在异常统计周期内;
计数子模块,用于若所述系统调用所述系统外部资源发生异常的时刻在所述异常统计周期内,则将所述系统外部资源的异常调用次数加一。
12.根据权利要求7至11中任意一项所述的控制装置,其特征在于,所述系统为网站系统,所述系统外部资源为调用第三方服务所需的资源或数据库资源。
CN201410649594.9A 2014-11-14 2014-11-14 资源访问的控制方法和装置 Active CN105656855B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410649594.9A CN105656855B (zh) 2014-11-14 2014-11-14 资源访问的控制方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410649594.9A CN105656855B (zh) 2014-11-14 2014-11-14 资源访问的控制方法和装置

Publications (2)

Publication Number Publication Date
CN105656855A true CN105656855A (zh) 2016-06-08
CN105656855B CN105656855B (zh) 2018-11-02

Family

ID=56479038

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410649594.9A Active CN105656855B (zh) 2014-11-14 2014-11-14 资源访问的控制方法和装置

Country Status (1)

Country Link
CN (1) CN105656855B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106130972A (zh) * 2016-06-22 2016-11-16 腾讯科技(深圳)有限公司 资源访问控制方法和装置
CN108984376A (zh) * 2018-05-31 2018-12-11 阿里巴巴集团控股有限公司 一种系统异常检测方法、装置及设备
CN114640700A (zh) * 2020-11-30 2022-06-17 腾讯科技(深圳)有限公司 一种调用频次控制方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101291254A (zh) * 2008-05-30 2008-10-22 华为技术有限公司 一种管理资源的方法、装置及系统
US20120120800A1 (en) * 2010-11-16 2012-05-17 Edgecast Networks, Inc. Request Modification for Transparent Capacity Management in a Carrier Network
CN103023938A (zh) * 2011-09-26 2013-04-03 阿里巴巴集团控股有限公司 一种服务器集群的服务能力控制方法和系统
US20140101332A1 (en) * 2012-03-15 2014-04-10 Justin Lipman Method and system for access point congestion detection and reduction

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101291254A (zh) * 2008-05-30 2008-10-22 华为技术有限公司 一种管理资源的方法、装置及系统
US20120120800A1 (en) * 2010-11-16 2012-05-17 Edgecast Networks, Inc. Request Modification for Transparent Capacity Management in a Carrier Network
CN103023938A (zh) * 2011-09-26 2013-04-03 阿里巴巴集团控股有限公司 一种服务器集群的服务能力控制方法和系统
US20140101332A1 (en) * 2012-03-15 2014-04-10 Justin Lipman Method and system for access point congestion detection and reduction

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106130972A (zh) * 2016-06-22 2016-11-16 腾讯科技(深圳)有限公司 资源访问控制方法和装置
CN106130972B (zh) * 2016-06-22 2018-11-09 腾讯科技(深圳)有限公司 资源访问控制方法和装置
CN108984376A (zh) * 2018-05-31 2018-12-11 阿里巴巴集团控股有限公司 一种系统异常检测方法、装置及设备
CN108984376B (zh) * 2018-05-31 2021-11-19 创新先进技术有限公司 一种系统异常检测方法、装置及设备
CN114640700A (zh) * 2020-11-30 2022-06-17 腾讯科技(深圳)有限公司 一种调用频次控制方法及装置

Also Published As

Publication number Publication date
CN105656855B (zh) 2018-11-02

Similar Documents

Publication Publication Date Title
US20190373052A1 (en) Aggregation of scalable network flow events
CN101895436B (zh) 网络实时监测和控制系统
CN109257293B (zh) 一种用于网络拥堵的限速方法、装置及网关服务器
US20150382132A1 (en) Method and Device for Monitoring
CN105991694B (zh) 一种实现分布式服务调用的方法与设备
US9854466B2 (en) Method and apparatus for managing monitoring task
EP3247073B1 (en) Alarm processing method and device
CN109412878A (zh) 多租户业务接入实现方法、装置及电子设备
CN103888619A (zh) 一种消息处理方法及其系统
CN103795569A (zh) 一种基于连接池的服务器连接方法和装置
CN107612713A (zh) 一种治理后端服务的方法
CN114189525B (zh) 服务请求方法、装置和电子设备
CN103259684A (zh) 互联网业务监控方法和系统
CN107071074A (zh) 一种负载均衡方法及web服务器集群系统
CN112583734B (zh) 一种突发流量控制方法、装置、电子设备及存储介质
WO2016119389A1 (zh) 一种系统对接的管理方法、装置和系统
CN105656855A (zh) 资源访问的控制方法和装置
CN115934202A (zh) 一种数据管理方法、系统、数据服务网关及存储介质
CN117376032B (zh) 安全服务调度方法和系统、电子设备、存储介质
CN114218046A (zh) 一种业务监控方法、介质、电子设备及可读存储介质
CN113672475A (zh) 告警处理方法、装置、计算机设备和存储介质
CN109101340B (zh) 弹幕消息的动态分发方法、装置、设备和存储介质
FI128647B (en) Automatic monitoring and control of networks
CN107770296A (zh) 分配地址的方法及装置
CN116389385A (zh) 一种系统资源处理方法、装置、存储介质及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200921

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200921

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240218

Address after: Guohao Times City # 20-01, 128 Meizhi Road, Singapore

Patentee after: Advanced Nova Technology (Singapore) Holdings Ltd.

Country or region after: Singapore

Address before: 27 Hospital Road, George Town, Grand Cayman ky1-9008

Patentee before: Innovative advanced technology Co.,Ltd.

Country or region before: Cayman Islands

TR01 Transfer of patent right