CN108270810B - 媒体数据访问方法及装置 - Google Patents
媒体数据访问方法及装置 Download PDFInfo
- Publication number
- CN108270810B CN108270810B CN201611260028.4A CN201611260028A CN108270810B CN 108270810 B CN108270810 B CN 108270810B CN 201611260028 A CN201611260028 A CN 201611260028A CN 108270810 B CN108270810 B CN 108270810B
- Authority
- CN
- China
- Prior art keywords
- access
- rate
- target
- target account
- request rate
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种媒体数据访问方法及装置,方法包括:基于预设的访问策略,确定目标账户的目标请求速率,所述目标请求速率为所述目标账户不被惩罚的最大请求速率,所述目标账户具有令牌集合,所述令牌集合具有令牌生成周期,在一个令牌生成周期内所述令牌集合中的访问令牌的生成量与所述目标请求速率在一个令牌生成周期内对应的请求的数量一致;在所述目标账户通过获取令牌集合中剩余的访问令牌访问媒体数据之后,获得所述目标账户访问媒体数据的访问结果;基于所述访问结果,调整所述目标账户的目标请求速率。
Description
技术领域
本发明涉及数据访问技术领域,特别涉及一种媒体数据访问方法及装置。
背景技术
在搜索引擎行销SEM等业务中,通过对媒体提供的API接口发送访问请求,来获取媒体中的数据。
而媒体对每个访问账户调用API接口的速率会有限制,当超过某个速率时,媒体端会在一定时间内禁止该账户调用接口,进行数据访问,即惩罚期,而在惩罚期内,如果该账户再次调用API接口则会增加禁用时间,以加倍惩罚,由此会严重影响对媒体上的数据的访问。
因此,需要对账户访问媒体数据的速率进行控制,以降低进行数据访问时被媒体端惩罚的几率。
发明内容
鉴于上述问题,提出了本申请以便提供一种克服或者至少部分地解决现有技术中需要对账户访问媒体数据的速率进行控制,以降低进行数据访问时被媒体端惩罚的几率的技术问题。
本申请提供了一种媒体数据访问方法,所述方法包括:
基于预设的访问策略,确定目标账户的目标请求速率,所述目标请求速率为所述目标账户不被惩罚的最大请求速率,所述目标账户具有令牌集合,所述令牌集合具有令牌生成周期,在一个令牌生成周期内所述令牌集合中的访问令牌的生成量与所述目标请求速率在一个令牌生成周期内对应的请求的数量一致;
在所述目标账户通过获取令牌集合中剩余的访问令牌访问媒体数据之后,获得所述目标账户访问媒体数据的访问结果;
基于所述访问结果,调整所述目标账户的目标请求速率。
上述方法,优选的,所述基于所述访问结果调整所述目标账户的目标请求速率,包括:
如果所述访问结果表明所述目标账户访问媒体数据受到惩罚,则按照预设的速率降低规则,降低所述目标请求速率并调整所述令牌集合在一个令牌生成周期内访问令牌的生成量;
如果在预设的第一时间段内的访问结果表明所述目标账户访问媒体数据均未受到惩罚,则按照预设的速率升高规则,升高所述目标请求速率并调整所述令牌集合在一个令牌生成周期内访问令牌的生成量。
上述方法,优选的,所述基于预设的访问策略,确定目标账户的目标请求速率,包括:
判断所述目标账户是否具有历史请求速率;
如果所述目标账户具有历史请求速率,获取所述目标账户的历史请求速率以及所述目标账户以所述历史请求速率访问媒体数据的历史访问结果,并根据预设的速率确定策略,基于所述历史访问结果及所述历史请求速率确定所述目标账户的目标请求速率;
如果所述目标账户不具有历史请求速率,将预设请求速率确定为所述目标账户的目标请求速率。
上述方法,优选的,所述速率确定策略包括:访问速率优先策略和访问成功优先策略中的任一种;
如果所述速率确定策略为访问速率优先策略,则所述基于所述历史访问结果及所述历史请求速率确定所述目标账户的目标请求速率,包括:
从所述历史请求速率中,筛选出所述历史访问结果表明被惩罚次数低于预设的次数阈值的历史请求速率;
将被惩罚次数低于所述次数阈值的历史请求速率中的最大的历史请求速率确定为所述目标账户的目标请求速率;
如果所述速率确定策略为访问成功优先策略,则所述基于所述历史访问结果及所述历史请求速率确定所述目标账户的目标请求速率,包括:
从所述目标账户的历史请求速率中,查找出所述历史访问结果表明未被惩罚的最大的历史请求速率;
将查找出的历史请求速率确定为所述目标账户的目标请求速率。
上述方法,优选的,如果所述访问结果表明所述目标账户访问媒体数据受到惩罚,所述方法还包括:
设置所述目标账户的请求速率禁止升高;
如果在预设的第二时间段内所述目标账户访问媒体数据的访问结果均表明所述目标账户访问媒体数据未受到惩罚,所述方法还包括:
设置所述目标账户的请求速率允许升高。
本申请还提供了一种媒体数据访问装置,包括:
速率确定单元,用于基于预设的访问策略,确定目标账户的目标请求速率,所述目标请求速率为所述目标账户不被惩罚的最大请求速率,所述目标账户具有令牌集合,所述令牌集合具有令牌生成周期,在一个令牌生成周期内所述令牌集合中的访问令牌的生成量与所述目标请求速率在一个令牌生成周期内对应的请求的数量一致;
结果获得单元,用于在所述目标账户通过获取令牌集合中剩余的访问令牌访问媒体数据之后,获得所述目标账户访问媒体数据的访问结果;
速率调整单元,用于基于所述访问结果,调整所述目标账户的目标请求速率。
上述装置,优选的,所述速率调整单元具体用于:
如果所述访问结果表明所述目标账户访问媒体数据受到惩罚,则按照预设的速率降低规则,降低所述目标请求速率并调整所述令牌集合在一个令牌生成周期内访问令牌的生成量;
如果在预设的第一时间段内的访问结果表明所述目标账户访问媒体数据均未受到惩罚,则按照预设的速率升高规则,升高所述目标请求速率并调整所述令牌集合在一个令牌生成周期内访问令牌的生成量。
上述装置,优选的,所述速率确定单元包括:
历史判断子单元,用于判断所述目标账户是否具有历史请求速率,如果所述目标账户具有历史请求速率,触发速率选择子单元,否则,触发速率设定子单元;
速率选择子单元,用于获取所述目标账户的历史请求速率以及所述目标账户以所述历史请求速率访问媒体数据的历史访问结果,并根据预设的速率确定策略,基于所述历史访问结果及所述历史请求速率确定所述目标账户的目标请求速率;
速率设定子单元,用于将预设请求速率确定为所述目标账户的目标请求速率。
上述装置,优选的,所述速率确定策略包括:访问速率优先策略和访问成功优先策略中的任一种;
如果所述速率确定策略为访问速率优先策略,则所述速率选择子单元具体用于:
从所述历史请求速率中,筛选出所述历史访问结果表明被惩罚次数低于预设的次数阈值的历史请求速率;
将被惩罚次数低于所述次数阈值的历史请求速率中的最大的历史请求速率确定为所述目标账户的目标请求速率;
如果所述速率确定策略为访问成功优先策略,则所述速率选择子单元具体用于:
从所述目标账户的历史请求速率中,查找出所述历史访问结果表明未被惩罚的最大的历史请求速率;
将查找出的历史请求速率确定为所述目标账户的目标请求速率。
上述装置,优选的,还包括:
禁止设置单元,用于如果所述访问结果表明所述目标账户访问媒体数据受到惩罚,设置所述目标账户的目标请求速率禁止升高在惩罚期内;
允许设置单元,用于如果在预设的第二时间段内所述目标账户访问媒体数据的访问结果均表明所述目标账户访问媒体数据未受到惩罚,设置所述目标账户的目标请求速率允许升高。
由上述方案可知,本申请提供的一种媒体数据访问方法及装置,通过设置与目标账户的目标请求速率相对应的令牌集合,进而使得目标账户能够通过获取令牌集合中剩余的访问令牌访问媒体数据,达到将目标账户的请求速率控制在目标请求速率之内的目的,从而降低被惩罚的几率,而在目标账户访问媒体数据之后,通过对访问结果进行获取,进而能够基于访问结果对目标请求速率进行调控,由此达到动态调整目标账户的目标请求速率的目的,在保证目标账户对媒体数据的访问需求的同时,降低目标账户被惩罚的几率,实现本申请目的。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本申请实施例一提供的一种媒体数据访问方法的实现流程图;
图2为本申请实施例一的另一流程图;
图3为本申请实施例二提供的一种媒体数据访问装置的结构示意图;
图4为本申请实施例二的部分结构示意图;
图5为本申请实施例二的另一结构示意图;
图6为本申请实施例的应用示例图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
参考图1,为本申请实施例一提供的一种媒体数据访问方法的实现流程图,其中,该方法适用于对任一用户账户对媒体端的数据进行访问的速率的动态控制中。具体的,本实施例中,该方法可以包括以下步骤:
步骤101:基于预设的访问策略,获取目标账户的目标请求速率。
其中,目标账户泛指每个对媒体端进行数据访问的账户。目标请求速率是指目标账户的初始请求速率,也就是说目标账户能够达到不被惩罚的最高速率。
在具体实现中,本实施例中可以通过以下方式获取目标请求速率:
首先,判断目标账户是否有历史请求速率。其中,历史访问速率是指的就是目标账户曾经向媒体端请求访问数据时的请求速率,历史访问结果是指,目标账户以各个历史请求速率向媒体端请求访问数据时的请求结果,这里的请求结果是指访问成功不被惩罚或者访问失败被惩罚的结果。也就是说,本实施例中首先看看每个账户是不是头一次进行媒体数据的访问,之前有没有发出过访问媒体数据的请求。
如果目标账户有历史请求速率,则获取目标账户的历史请求速率以及目标账户以历史请求速率访问媒体数据的历史访问结果,并根据预设的速率确定策略,基于历史访问结果及历史请求速率确定目标账户的目标请求速率。
例如A账户在过去一年中以大于100次每秒的速率进行数据访问的请求,100%失败,被惩罚1小时内不能访问;或者,A账户在过去一年中以60次每秒的速率请求访问数据,80%成功,20%失败,不被惩罚;或者,A账户在过去一年中以50次每秒的速率请求访问数据,100%成功,不被惩罚。
其中,速率确定策略包括:访问速率优先策略及访问成功优先策略中的任一种。
如果速率确定策略采用访问速率优先策略,则从所述历史请求速率中,筛选出所述历史访问结果表明被惩罚次数低于预设的次数阈值的历史请求速率,之后,将被惩罚次数低于所述次数阈值的历史请求速率中的最大的历史请求速率确定为所述目标账户的目标请求速率。
如果速率确定策略采用访问成功优先策略,则从所述目标账户的历史请求速率中,查找出所述历史访问结果表明未被惩罚的最大的历史请求速率,之后,将查找出的历史请求速率确定为所述目标账户的目标请求速率。
或者,上述目标请求速率的速率确定策略可以理解为:采用请求速率的权重大于访问成功率的权重的策略还是访问成功率的权重大于请求速率的权重的策略。也就是说,在确定目标请求速率时,优先考虑请求速率还是优先考虑访问成功率。
具体的,如果优先考虑请求速率,例如,根据历史请求速率根据一定的算法确定有一定概率被惩罚的速率,此时的速率通常较高。
而如果优先考虑成功率,例如:根据历史请求速率确定未被媒体端惩罚过的最大的速率,此时的成功率通常较高。
而如果目标账户没有历史请求速率,则将预设请求速率确定为目标账户的目标请求速率。
需要说明的是,如果该目标账户没有历史请求速率,说明该目标账户还没有进行过媒体数据的访问,此时,可以采用默认的速率,如80次每秒的速率。
其中,本实施例中通过对目标账户设置访问令牌的方式来控制目标账户的请求速率在目标请求速率的范围内。如下:
本实施例通过基于目标请求速率为目标账户创建令牌集合,令牌集合具有令牌生成周期,如1秒或1小时等,在一个令牌生成周期内令牌集合中生成一个或多个访问令牌,在一个令牌生成周期内令牌集合对访问令牌的发放量不超过其生成量。而令牌集合在一个令牌生成周期内访问令牌的生成量与目标请求速率在一个令牌生成周期内对应的请求的数量相一致,例如:1秒内令牌集合中访问令牌的生成量为N,那么目标请求速率在1秒内对应N个请求,也就是说,目标请求速率折合成以秒为单位的速率值时与N个/秒的速率是相等的。
由此,本实施例中在确定目标请求速率之后,预先为目标账户创建令牌集合,在接收到目标账户发送的访问请求之后,首先判断目标账户是否处于惩罚期,如果目标账户处于不允许访问媒体数据的惩罚期时,则不做任何操作,以避免惩罚期延长的情况;而如果目标账户没有处于惩罚期,则判断令牌集合中是否有剩余的访问令牌,如果有剩余的令牌,则给目标账户发放一个访问令牌,由目标账户根据访问令牌去访问媒体数据,而如果没有剩余的访问令牌,则说明目标账户当前的访问速率已经达到最大的不被惩罚的目标请求速率,此时不给目标账户发访问令牌,以避免目标账户继续访问媒体数据造成被惩罚的情况。
需要说明的是,本实施例中一个访问请求对应一个访问令牌,本实施例中对于一个访问请求只发放一个访问令牌,如果获取到的访问请求为多个,则是要在判断出令牌集合中剩余的访问令牌的个数大于或者等于所接收到的访问请求的个数时,再获取相应数量的访问令牌,并给每个访问请求发放一个访问令牌。
其中,访问请求即为当前状态下,目标账户向媒体端发送的数据访问请求。
也就是说,访问令牌相当于目标账户的通行证,如果没有访问令牌,则目标账户无法访问媒体端的API接口,也就无法访问媒体数据,需要等待一定的时间后再重新发送访问请求,再次尝试获取访问令牌,只有令牌集合中有访问令牌时,才能获得访问令牌进而访问媒体端的API接口。
而如果在令牌集合中没有访问令牌时,则不向目标账户发放访问令牌,则继续等待目标账户的访问请求,只有在令牌集合中有访问令牌时,才能发给目标账户,由目标账户基于此访问令牌访问媒体端的API接口,进而访问媒体数据。
本实施例在判断令牌集合中是否有剩余的访问令牌时,具体是指:判断在当前的令牌生成周期中,访问请求在这个周期内的请求排序值是否小于或等于目标请求速率在一个令牌生成周期内对应的请求的数量的值,如果小于或者等于,则说明令牌集合中有剩余的令牌,否则,没有剩余的令牌。
例如,本实施例中,目标账户的目标请求速率为5个/秒,令牌集合在一个令牌生成周期中的最大的访问令牌的数量为5。由此,在当前的一个令牌生成周期1秒中,在接受到访问请求A时,之前已经接收到3个访问请求,那么A是第4个请求,此时,判断这个4是小于目标请求速率在1秒内的请求的数量5的,因此,判断出令牌集合中肯定是有剩余的访问令牌的,此时从令牌集合中拿一个访问令牌给目标账户,由目标账户根据这个令牌去访问媒体数据。
需要说明的是,本实施例中,目标账户对于每个访问请求所获取到的令牌在结束媒体数据访问之后,会释放掉访问令牌。
步骤102:在目标账户通过获取令牌集合中剩余的访问令牌访问媒体数据之后,获得目标账户访问媒体数据的访问结果。
其中,访问结果能够表明目标账户根据访问令牌访问媒体数据是否被惩罚,如feedback的结果。
需要说明的是,虽然本实施例中的目标请求速率为目标账户预先设置的不被惩罚的最大请求速率,但由于媒体数据访问的情况复杂,仍然存在由于多个账户同时进行媒体数据访问,导致媒体端需要不再接受访问请求导致目标账户访问失败被惩罚的情况。因此,本实施例中的访问结果是能够表明目标账户是否被惩罚的结果。
步骤103:基于访问结果,调整目标账户的目标请求速率。
例如,基于访问结果,升高目标请求速率或者降低目标请求速率,达到动态调整目标请求速率的目的。
需要说明的是,本实施例中也可以将访问结果定期存储到数据库中进行持久化存储,作为后续速率调控或其他处理的依据。
由上述方案可知,本申请实施例一提供的一种媒体数据访问方法,通过设置与目标账户的目标请求速率相对应的令牌集合,进而使得目标账户能够通过获取令牌集合中剩余的访问令牌访问媒体数据,达到将目标账户的请求速率控制在目标请求速率之内的目的,从而降低被惩罚的几率,而在目标账户访问媒体数据之后,通过对访问结果进行获取,进而能够基于访问结果对目标请求速率进行调控,由此达到动态调整目标账户的目标请求速率的目的,在保证目标账户对媒体数据的访问需求的同时,降低目标账户被惩罚的几率,实现本实施例目的。
在一种实现中,本实施例为了进一步降低目标账户被惩罚的几率,本实施例可以通过实时对目标账户的访问结果进行判断,进而实现对目标账户的最大请求速率即目标请求速率进行调控。
具体的,如果访问结果表明目标账户访问媒体数据受到惩罚,则按照预设的速率降低规则,降低目标请求速率并调整令牌集合在一个令牌生成周期内访问令牌的生成量。
其中,如果访问结果表明目标账户有访问失败被惩罚的情况,则说明当前媒体端及其API接口不能完全负载目标账户及其他账户的数据访问压力,则本实施例中为了保证数据访问的可靠性,降低后续目标账户被惩罚的几率,则需要适当降低目标账户的目标请求速率,进而基于本实施例中方案,将目标账户的请求速率控制在降低后的目标请求速率之内,由此,进一步降低被惩罚的几率。
需要说明的是,本实施例中速率降低规则,可以为:降低N个/秒,N为根据需求设置的数值;或者,速率降低规则为:基于目标账户当前的目标请求速率,按照目标请求速率的1/M的比例,对目标请求速率进行降低,也就是说,将目标请求速率降低为其原来的(M-1)/M,等等。
也就是说,目标账户对应的令牌集合中访问令牌在一个令牌生成周期内的生成量仍然是与目标请求速率在一个令牌生成周期对应的请求的数量保持一致的,目标请求速率被降低,相应的访问令牌在一个令牌生成周期内的生成量也会被相应的减少。例如,目标请求速率由120次/秒降低到110次/秒,那么令牌集合中访问令牌在1秒内的生成量也会从120个减少到110个。
其中,本实施例中是对每次目标账户访问媒体数据之后的访问结果都进行判断,判断是否被惩罚,进而能够及时在发现目标账户被惩罚时,马上降低目标请求速率,进而在惩罚期过后再次访问媒体数据时,降低目标账户访问媒体数据被惩罚的几率。
而为了尽量保证目标账户的请求速率,来满足目标账户对媒体数据的需求,需要尽可能的使目标账户的请求速率保持在最大而又不被惩罚的状态,则判断在预设的第一时间段内的访问结果是否表明目标账户访问媒体数据均未受到惩罚,如果在预设的第一时间段内的访问结果表明目标账户访问媒体数据均未受到惩罚,则按照预设的速率升高规则,升高目标请求速率并调整令牌集合在一个令牌生成周期内访问令牌的生成量。
其中,这里的第一时间段可以根据用户需求进行设置,如果用户需要速率控制的时效性,可以将这个第一时间段的值设置为较小的值,如2小时或者1小时,而如果用户需要速率控制的稳定性及数据访问的可靠性,则可以设置为较大的值,如24小时或48小时等。
如果在第一时间段内目标账户每次访问媒体数据的访问结果均表明目标账户没有访问失败被惩罚的情况,则说明当前媒体端及其API接口完全能够负载目标账户及其他账户的所有数据访问压力,则本实施例中为了保证数据访问的高效性,满足用户对媒体数据的需求,则需要适当升高目标账户的目标请求速率,进而基于本实施例中方案,将目标账户的请求速率控制在升高后的目标请求速率之内,由此,在保证降低被惩罚的几率的同时,满足用户对媒体数据的访问需求。
需要说明的是,本实施例中速率升高规则,可以为:身高N个/秒,N为根据需求设置的数值;或者,速率升高规则为:基于目标账户当前的目标请求速率,按照目标请求速率的1/M的比例,对目标请求速率进行升高,也就是说,将目标请求速率升高为其原来的(M+1)/M,等等。
也就是说,目标账户对应的令牌集合中访问令牌在一个令牌生成周期内的生成量仍然是与目标请求速率在一个令牌生成周期对应的请求的数量保持一致的,目标请求速率被身高,相应的访问令牌在一个令牌生成周期内的生成量也会被相应的增加。例如,目标请求速率由80次/秒升高到90次/秒,那么令牌集合中访问令牌在1秒内的生成量也会从80个增加到90个。
结合以上实现方案,本实施例中可以对每次目标账户访问媒体数据之后的访问结果都进行判断,判断是否被惩罚,进而能够及时在发现目标账户被惩罚时,马上降低目标请求速率,进而在惩罚期过后再次访问媒体数据时,降低目标账户访问媒体数据被惩罚的几率,而如果在连续第一时间段内的每次访问媒体数据都没有被惩罚,则升高目标请求速率,进而在保证目标账户不被惩罚的情况下,满足目标账户对媒体数据的访问需求。
另外,在目标账户进入惩罚期时,本实施例可以对目标账户的目标请求速率进行增长限定,如图2中所示,在步骤103之后,如果访问结果表明目标账户访问媒体数据受到惩罚时,该方法还可以包括以下步骤:
步骤104:设置目标账户的目标请求速率禁止升高,或者进一步的,按照预设的速率降低规则,降低目标请求速率。
其中,目标账户的目标请求速率禁止升高的期限可以从目标账户被惩罚开始,无限延长直到接触禁止的条件成立,或者目标请求速率禁止升高的期限为一个预设的时间期限,这个时间期限可以与惩罚期相同或者不同。
而如果在预设的第二时间段内的访问结果表明目标账户访问媒体数据均未受到惩罚,该方法还可以包括以下步骤:
步骤105:设置目标账户的目标请求速率允许升高,或者,进一步的按照预设的速率升高规则,升高目标请求速率。
需要说明的是,本实施例中对目标账户的目标请求速率在目标账户被惩罚时设置禁止升高的目的在于:为了避免出了惩罚期之后,目标请求速率由于仍然处于一个较高的值,而在基于访问结果再次升高到一定值时再次受到惩罚,再次调低,导致目标请求速率调控效率较低的情况,无法真正做到降低被惩罚几率。而如果在目标账户进入惩罚期之后,设置目标请求速率禁止升高,即使在出了惩罚期之后,仍然让目标请求速率禁止升高,使得目标请求速率仍然处于一个较低的值并保持第二时间长之后,再根据结果来解除禁止增加的限制,进而调高目标请求速率,进而避免速率直接升高又一次被惩罚,也避免这个速率仍然被惩罚而造成调控不及时的情况,即为允许目标请求速率增加,由此进一步保证目标账户被惩罚几率降低。
参考图3,为本申请实施例二提供的一种媒体数据访问装置的结构示意图,该装置适用于对任一用户账户对媒体端的数据进行访问的速率的动态控制中。
具体的,本实施例中可以包括以下结构:
速率确定单元301,用于基于预设的访问策略,确定目标账户的目标请求速率。
其中,目标账户泛指每个对媒体端进行数据访问的账户。目标请求速率是指目标账户的初始请求速率,也就是说目标账户能够达到不被惩罚的最高速率。
在具体实现中,本实施例中,如图4中所示,速率确定单元301可以通过以下结构实现:
历史判断子单元401,用于判断所述目标账户是否具有历史请求速率,如果所述目标账户具有历史请求速率,触发速率选择子单元402,否则,触发速率设定子单元403;
其中,历史访问速率是指的就是目标账户曾经向媒体端请求访问数据时的请求速率,历史访问结果是指,目标账户以各个历史请求速率向媒体端请求访问数据时的请求结果,这里的请求结果是指访问成功不被惩罚或者访问失败被惩罚的结果。也就是说,本实施例中首先看看每个账户是不是头一次进行媒体数据的访问,之前有没有发出过访问媒体数据的请求。
速率选择子单元402,用于获取所述目标账户的历史请求速率以及所述目标账户以所述历史请求速率访问媒体数据的历史访问结果,并根据预设的速率确定策略,基于所述历史访问结果及所述历史请求速率确定所述目标账户的目标请求速率。
例如A账户在过去一年中以大于100次每秒的速率进行数据访问的请求,100%失败,被惩罚1小时内不能访问;或者,A账户在过去一年中以60次每秒的速率请求访问数据,80%成功,20%失败,不被惩罚;或者,A账户在过去一年中以50次每秒的速率请求访问数据,100%成功,不被惩罚。
其中,速率确定策略包括:访问速率优先策略及访问成功优先策略中的任一种。
如果速率确定策略采用访问速率优先策略,则速率选择子单元具体用于:从所述历史请求速率中,筛选出所述历史访问结果表明被惩罚次数低于预设的次数阈值的历史请求速率,之后,将被惩罚次数低于所述次数阈值的历史请求速率中的最大的历史请求速率确定为所述目标账户的目标请求速率。
如果速率确定策略采用访问成功优先策略,则速率选择子单元具体用于:
从所述目标账户的历史请求速率中,查找出所述历史访问结果表明未被惩罚的最大的历史请求速率,之后,将查找出的历史请求速率确定为所述目标账户的目标请求速率。
或者,上述目标请求速率的速率确定策略可以理解为:采用请求速率的权重大于访问成功率的权重的策略还是访问成功率的权重大于请求速率的权重的策略。也就是说,在确定目标请求速率时,优先考虑请求速率还是优先考虑访问成功率。
具体的,如果优先考虑请求速率,例如,根据历史请求速率根据一定的算法确定有一定概率被惩罚的速率,此时的速率通常较高。
而如果优先考虑成功率,例如:根据历史请求速率确定未被媒体端惩罚过的最大的速率,此时的成功率通常较高。
速率设定子单元403,用于将预设请求速率确定为所述目标账户的目标请求速率。
需要说明的是,如果该目标账户没有历史请求速率,说明该目标账户还没有进行过媒体数据的访问,此时,可以采用默认的速率,如80次每秒的速率。
其中,本实施例中通过对目标账户设置访问令牌的方式来控制目标账户的请求速率在目标请求速率的范围内。如下:
本实施例通过基于目标请求速率为目标账户创建令牌集合,令牌集合具有令牌生成周期,如1秒或1小时等,在一个令牌生成周期内令牌集合中生成一个或多个访问令牌,在一个令牌生成周期内令牌集合对访问令牌的发放量不超过其生成量。而令牌集合在一个令牌生成周期内访问令牌的生成量与目标请求速率在一个令牌生成周期内对应的请求的数量相一致,例如:1秒内令牌集合中访问令牌的生成量为N,那么目标请求速率在1秒内对应N个请求,也就是说,目标请求速率折合成以秒为单位的速率值时与N个/秒的速率是相等的。
由此,本实施例中在确定目标请求速率之后,预先为目标账户创建令牌集合,在接收到目标账户发送的访问请求之后,首先判断目标账户是否处于惩罚期,如果目标账户处于不允许访问媒体数据的惩罚期时,则不做任何操作,以避免惩罚期延长的情况;而如果目标账户没有处于惩罚期,则判断令牌集合中是否有剩余的访问令牌,如果有剩余的令牌,则给目标账户发放一个访问令牌,由目标账户根据访问令牌去访问媒体数据,而如果没有剩余的访问令牌,则说明目标账户当前的访问速率已经达到最大的不被惩罚的目标请求速率,此时不给目标账户发访问令牌,以避免目标账户继续访问媒体数据造成被惩罚的情况。
需要说明的是,本实施例中一个访问请求对应一个访问令牌,本实施例中对于一个访问请求只发放一个访问令牌,如果获取到的访问请求为多个,则是要在判断出令牌集合中剩余的访问令牌的个数大于或者等于所接收到的访问请求的个数时,再获取相应数量的访问令牌,并给每个访问请求发放一个访问令牌。
其中,访问请求即为当前状态下,目标账户向媒体端发送的数据访问请求。
也就是说,访问令牌相当于目标账户的通行证,如果没有访问令牌,则目标账户无法访问媒体端的API接口,也就无法访问媒体数据,需要等待一定的时间后再重新发送访问请求,再次尝试获取访问令牌,只有令牌集合中有访问令牌时,才能获得访问令牌进而访问媒体端的API接口。
而如果在令牌集合中没有访问令牌时,则不向目标账户发放访问令牌,则继续等待目标账户的访问请求,只有在令牌集合中有访问令牌时,才能发给目标账户,由目标账户基于此访问令牌访问媒体端的API接口,进而访问媒体数据。
本实施例在判断令牌集合中是否有剩余的访问令牌时,具体是指:判断在当前的令牌生成周期中,访问请求在这个周期内的请求排序值是否小于或等于目标请求速率在一个令牌生成周期内对应的请求的数量的值,如果小于或者等于,则说明令牌集合中有剩余的令牌,否则,没有剩余的令牌。
例如,本实施例中,目标账户的目标请求速率为5个/秒,令牌集合在一个令牌生成周期中的最大的访问令牌的数量为5。由此,在当前的一个令牌生成周期1秒中,在接受到访问请求A时,之前已经接收到3个访问请求,那么A是第4个请求,此时,判断这个4是小于目标请求速率在1秒内的请求的数量5的,因此,判断出令牌集合中肯定是有剩余的访问令牌的,此时从令牌集合中拿一个访问令牌给目标账户,由目标账户根据这个令牌去访问媒体数据。
需要说明的是,本实施例中,目标账户对于每个访问请求所获取到的令牌在结束媒体数据访问之后,会释放掉访问令牌。
结果获得单元302,用于在所述目标账户通过获取令牌集合中剩余的访问令牌访问媒体数据之后,获得所述目标账户访问媒体数据的访问结果。
其中,访问结果能够表明目标账户根据访问令牌访问媒体数据是否被惩罚,如feedback的结果。
需要说明的是,虽然本实施例中的目标请求速率为目标账户预先设置的不被惩罚的最大请求速率,但由于媒体数据访问的情况复杂,仍然存在由于多个账户同时进行媒体数据访问,导致媒体端需要不再接受访问请求导致目标账户访问失败被惩罚的情况。因此,本实施例中的访问结果是能够表明目标账户是否被惩罚的结果。
速率调整单元303,用于基于所述访问结果,调整所述目标账户的目标请求速率。
例如,基于访问结果,升高目标请求速率或者降低目标请求速率,达到动态调整目标请求速率的目的。
需要说明的是,本实施例中也可以将访问结果定期存储到数据库中进行持久化存储,作为后续速率调控或其他处理的依据。
由上述方案可知,本申请实施例二提供的一种媒体数据访问装置,通过设置与目标账户的目标请求速率相对应的令牌集合,进而使得目标账户能够通过获取令牌集合中剩余的访问令牌访问媒体数据,达到将目标账户的请求速率控制在目标请求速率之内的目的,从而降低被惩罚的几率,而在目标账户访问媒体数据之后,通过对访问结果进行获取,进而能够基于访问结果对目标请求速率进行调控,由此达到动态调整目标账户的目标请求速率的目的,在保证目标账户对媒体数据的访问需求的同时,降低目标账户被惩罚的几率,实现本实施例目的。
在一种实现中,本实施例为了进一步降低目标账户被惩罚的几率,本实施例中,速率调整单元303可以通过实时对目标账户的访问结果进行判断,进而实现对目标账户的最大请求速率即目标请求速率进行调控。
具体的,如果访问结果表明目标账户访问媒体数据受到惩罚,则速率调整单元303按照预设的速率降低规则,降低目标请求速率并调整令牌集合在一个令牌生成周期内访问令牌的生成量。
其中,如果访问结果表明目标账户有访问失败被惩罚的情况,则说明当前媒体端及其API接口不能完全负载目标账户及其他账户的数据访问压力,则本实施例中为了保证数据访问的可靠性,降低后续目标账户被惩罚的几率,则需要适当降低目标账户的目标请求速率,进而基于本实施例中方案,将目标账户的请求速率控制在降低后的目标请求速率之内,由此,进一步降低被惩罚的几率。
需要说明的是,本实施例中速率降低规则,可以为:降低N个/秒,N为根据需求设置的数值;或者,速率降低规则为:基于目标账户当前的目标请求速率,按照目标请求速率的1/M的比例,对目标请求速率进行降低,也就是说,将目标请求速率降低为其原来的(M-1)/M,等等。
也就是说,目标账户对应的令牌集合中访问令牌在一个令牌生成周期内的生成量仍然是与目标请求速率在一个令牌生成周期对应的请求的数量保持一致的,目标请求速率被降低,相应的访问令牌在一个令牌生成周期内的生成量也会被相应的减少。例如,目标请求速率由120次/秒降低到110次/秒,那么令牌集合中访问令牌在1秒内的生成量也会从120个减少到110个。
其中,本实施例中是对每次目标账户访问媒体数据之后的访问结果都进行判断,判断是否被惩罚,进而能够及时在发现目标账户被惩罚时,马上降低目标请求速率,进而在惩罚期过后再次访问媒体数据时,降低目标账户访问媒体数据被惩罚的几率。
而为了尽量保证目标账户的请求速率,来满足目标账户对媒体数据的需求,需要尽可能的使目标账户的请求速率保持在最大而又不被惩罚的状态,则速率调整单元303判断在预设的第一时间段内的访问结果是否表明目标账户访问媒体数据均未受到惩罚,如果在预设的第一时间段内的访问结果表明目标账户访问媒体数据均未受到惩罚,则按照预设的速率升高规则,升高目标请求速率并调整令牌集合在一个令牌生成周期内访问令牌的生成量。
其中,这里的第一时间段可以根据用户需求进行设置,如果用户需要速率控制的时效性,可以将这个第一时间段的值设置为较小的值,如2小时或者1小时,而如果用户需要速率控制的稳定性及数据访问的可靠性,则可以设置为较大的值,如24小时或48小时等。
如果在第一时间段内目标账户每次访问媒体数据的访问结果均表明目标账户没有访问失败被惩罚的情况,则说明当前媒体端及其API接口完全能够负载目标账户及其他账户的所有数据访问压力,则本实施例中为了保证数据访问的高效性,满足用户对媒体数据的需求,则需要适当升高目标账户的目标请求速率,进而基于本实施例中方案,将目标账户的请求速率控制在升高后的目标请求速率之内,由此,在保证降低被惩罚的几率的同时,满足用户对媒体数据的访问需求。
需要说明的是,本实施例中速率升高规则,可以为:身高N个/秒,N为根据需求设置的数值;或者,速率升高规则为:基于目标账户当前的目标请求速率,按照目标请求速率的1/M的比例,对目标请求速率进行升高,也就是说,将目标请求速率升高为其原来的(M+1)/M,等等。
也就是说,目标账户对应的令牌集合中访问令牌在一个令牌生成周期内的生成量仍然是与目标请求速率在一个令牌生成周期对应的请求的数量保持一致的,目标请求速率被身高,相应的访问令牌在一个令牌生成周期内的生成量也会被相应的增加。例如,目标请求速率由80次/秒升高到90次/秒,那么令牌集合中访问令牌在1秒内的生成量也会从80个增加到90个。
结合以上实现方案,本实施例中可以对每次目标账户访问媒体数据之后的访问结果都进行判断,判断是否被惩罚,进而能够及时在发现目标账户被惩罚时,马上降低目标请求速率,进而在惩罚期过后再次访问媒体数据时,降低目标账户访问媒体数据被惩罚的几率,而如果在连续第一时间段内的每次访问媒体数据都没有被惩罚,则升高目标请求速率,进而在保证目标账户不被惩罚的情况下,满足目标账户对媒体数据的访问需求。
另外,在目标账户进入惩罚期时,本实施例可以对目标账户的目标请求速率进行增长限定,如图5中所示,该装置还可以包括以下结构:
禁止设置单元304,用于如果所述访问结果表明所述目标账户访问媒体数据受到惩罚,设置所述目标账户的目标请求速率禁止升高在惩罚期内。
其中,目标账户的目标请求速率禁止升高的期限可以从目标账户被惩罚开始,无限延长直到接触禁止的条件成立,或者目标请求速率禁止升高的期限为一个预设的时间期限,这个时间期限可以与惩罚期相同或者不同。
允许设置单元305,用于如果在预设的第二时间段内所述目标账户访问媒体数据的访问结果均表明所述目标账户访问媒体数据未受到惩罚,设置所述目标账户的目标请求速率允许升高。
需要说明的是,本实施例中对目标账户的目标请求速率在目标账户被惩罚时设置禁止升高的目的在于:为了避免出了惩罚期之后,目标请求速率由于仍然处于一个较高的值,而在基于访问结果再次升高到一定值时再次受到惩罚,再次调低,导致目标请求速率调控效率较低的情况,无法真正做到降低被惩罚几率。而如果在目标账户进入惩罚期之后,设置目标请求速率禁止升高,即使在出了惩罚期之后,仍然让目标请求速率禁止升高,使得目标请求速率仍然处于一个较低的值并保持第二时间长之后,再根据结果来解除禁止增加的限制,进而调高目标请求速率,进而避免速率直接升高又一次被惩罚,也避免这个速率仍然被惩罚而造成调控不及时的情况,即为允许目标请求速率增加,由此进一步保证目标账户被惩罚几率降低。
由以上方案可知,本实施例中通过令牌桶的技术控制每个账户的请求速率,并记录各个账户在不同速率下每次请求的结果(即feedback数据,成功或者被限制),并根据请求的结果对后续的速率进行动态控制。具体如下:
Step1:本实施例启动时从数据库中读取各个账户的历史速率信息,根据需要,用户可选择不同的策略,本实施例根据用户的策略和账户的历史速率信息,计算出初始速率,即上文中的目标请求速率。这里的策略可以是速率优先和成功率优先,在成功率优先时会选择未被媒体惩罚过的最大速率为初始速率,而在速率优先时可以根据一定的算法选择有一定概率被惩罚的速率。如果某个账户没有历史的速率限制信息,则使用系统制定的默认速率启动。
Step2:在账户希望通过媒体的API获取数据时,首先账户向本实施例发出请求,获取访问令牌(每分钟或者每秒发放的令牌数就是速率),若获取到则可以直接访问媒体的API获取数据,若没有获取到,则需要等待一定的时间再重试。速率限制系统会为每个账户定期生成一定数量的令牌(数量与速率一致),当账户请求令牌时若该账户未被锁定(在惩罚期),且有剩余的令牌,本实施例则会发放令牌,否则不会发放。
Step3:当账户获取到令牌后,可以访问媒体的API,并将访问的结果反馈给本实施例。具体反馈逻辑请参考图6中的流程图。当某个账户被惩罚时,则锁定该账户的QPS(QueryPer Second,请求速率)增长(一定时间内),只允许降低。
Step4:将每次FeedBack的结果,及当前账户的速率信息记录下来,并定期存储到数据库中进行持久化存储,作为后续速率调控的依据。
Step5:每隔固定的时间(预设,可以为24小时等)系统根据用户选择的策略按照Step1中的描述,对未锁定QPS增长的账户重新进行速率调整。
Step6:本实施例采用乐观增长,失败回退的方案,当账户超过24小时未收到错误反馈,则按比率提升当前账户的QPS,若账户处于QPS增长锁定状态,则解除增长锁定;而当每次收到错误反馈后则按照比率调低当前账户的QPS值。
由此可以看出,本实施例中通过令牌桶技术和对历史访问速率数据的分析以及用户制定的限制策略智能精确的对请求速率进行限制,并根据实时反馈的请求结果对速率进行动态调整,降低被媒体惩罚的概率,提高系统的可用性。
而本实施例中对各个账户的请求速率进行精确智能的控制,大大降低因为频繁请求导致账户被惩罚(不允许访问API获取数据)的情况,尤其不会出现因为频繁被惩罚(惩罚时间不断加倍)而造成长时间账户无法操作的情况,并支持通过对历史访问数据的分析和用户策略的不同使用不同方式的QPS限制策略。
本实施例中的数据访问的控制装置在具体实现中可以包括:处理器和存储器,上述速率确定单元、结果获得单元、速率调整单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现账户的访问速率的动态控制。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本实施例中的媒体数据访问装置,通过设置与目标账户的目标请求速率相对应的令牌集合,进而使得目标账户能够通过获取令牌集合中剩余的访问令牌访问媒体数据,达到将目标账户的请求速率控制在目标请求速率之内的目的,从而降低被惩罚的几率,而在目标账户访问媒体数据之后,通过对访问结果进行获取,进而能够基于访问结果对目标请求速率进行调控,由此达到动态调整目标账户的目标请求速率的目的,在保证目标账户对媒体数据的访问需求的同时,降低目标账户被惩罚的几率,实现本申请目的。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:基于预设的访问策略,确定目标账户的目标请求速率,所述目标请求速率为所述目标账户不被惩罚的最大请求速率,所述目标账户具有令牌集合,所述令牌集合具有令牌生成周期,在一个令牌生成周期内所述令牌集合中的访问令牌的生成量与所述目标请求速率在一个令牌生成周期内对应的请求的数量一致;在所述目标账户通过获取令牌集合中剩余的访问令牌访问媒体数据之后,获得所述目标账户访问媒体数据的访问结果;基于所述访问结果,调整所述目标账户的目标请求速率。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种媒体数据访问方法,其特征在于,所述方法包括:
基于预设的访问策略,确定目标账户的目标请求速率,所述目标请求速率为所述目标账户不被惩罚的最大请求速率,所述目标账户具有令牌集合,所述令牌集合具有令牌生成周期,在一个令牌生成周期内所述令牌集合中的访问令牌的生成量与所述目标请求速率在一个令牌生成周期内对应的请求的数量一致,通过对目标账户设置访问令牌的方式来控制目标账户的请求速率在目标请求速率的范围内;
在所述目标账户通过获取令牌集合中剩余的访问令牌访问媒体数据之后,获得所述目标账户访问媒体数据的访问结果,所述访问结果用于表明所述目标账户根据所述访问令牌访问媒体数据是否被惩罚;
基于所述访问结果,升高或降低所述目标账户的目标请求速率,以达到动态调整目标请求速率。
2.根据权利要求1所述的方法,其特征在于,所述基于所述访问结果调整所述目标账户的目标请求速率,包括:
如果所述访问结果表明所述目标账户访问媒体数据受到惩罚,则按照预设的速率降低规则,降低所述目标请求速率并调整所述令牌集合在一个令牌生成周期内访问令牌的生成量;
如果在预设的第一时间段内的访问结果表明所述目标账户访问媒体数据均未受到惩罚,则按照预设的速率升高规则,升高所述目标请求速率并调整所述令牌集合在一个令牌生成周期内访问令牌的生成量。
3.根据权利要求1所述的方法,其特征在于,所述基于预设的访问策略,确定目标账户的目标请求速率,包括:
判断所述目标账户是否具有历史请求速率;
如果所述目标账户具有历史请求速率,获取所述目标账户的历史请求速率以及所述目标账户以所述历史请求速率访问媒体数据的历史访问结果,并根据预设的速率确定策略,基于所述历史访问结果及所述历史请求速率确定所述目标账户的目标请求速率;
如果所述目标账户不具有历史请求速率,将预设请求速率确定为所述目标账户的目标请求速率。
4.根据权利要求3所述的方法,其特征在于,所述速率确定策略包括:访问速率优先策略和访问成功优先策略中的任一种;
如果所述速率确定策略为访问速率优先策略,则所述基于所述历史访问结果及所述历史请求速率确定所述目标账户的目标请求速率,包括:
从所述历史请求速率中,筛选出所述历史访问结果表明被惩罚次数低于预设的次数阈值的历史请求速率;
将被惩罚次数低于所述次数阈值的历史请求速率中的最大的历史请求速率确定为所述目标账户的目标请求速率;
如果所述速率确定策略为访问成功优先策略,则所述基于所述历史访问结果及所述历史请求速率确定所述目标账户的目标请求速率,包括:
从所述目标账户的历史请求速率中,查找出所述历史访问结果表明未被惩罚的最大的历史请求速率;
将查找出的历史请求速率确定为所述目标账户的目标请求速率。
5.根据权利要求1所述的方法,其特征在于,如果所述访问结果表明所述目标账户访问媒体数据受到惩罚,所述方法还包括:
设置所述目标账户的目标请求速率禁止升高;
如果在预设的第二时间段内所述目标账户访问媒体数据的访问结果均表明所述目标账户访问媒体数据未受到惩罚,所述方法还包括:
设置所述目标账户的目标请求速率允许升高。
6.一种媒体数据访问装置,其特征在于,包括:
速率确定单元,用于基于预设的访问策略,确定目标账户的目标请求速率,所述目标请求速率为所述目标账户不被惩罚的最大请求速率,所述目标账户具有令牌集合,所述令牌集合具有令牌生成周期,在一个令牌生成周期内所述令牌集合中的访问令牌的生成量与所述目标请求速率在一个令牌生成周期内对应的请求的数量一致,通过对目标账户设置访问令牌的方式来控制目标账户的请求速率在目标请求速率的范围内;
结果获得单元,用于在所述目标账户通过获取令牌集合中剩余的访问令牌访问媒体数据之后,获得所述目标账户访问媒体数据的访问结果,所述访问结果用于表明所述目标账户根据所述访问令牌访问媒体数据是否被惩罚;
速率调整单元,用于基于所述访问结果,升高或降低所述目标账户的目标请求速率,以达到动态调整目标请求速率。
7.根据权利要求6所述的装置,其特征在于,所述速率调整单元具体用于:
如果所述访问结果表明所述目标账户访问媒体数据受到惩罚,则按照预设的速率降低规则,降低所述目标请求速率并调整所述令牌集合在一个令牌生成周期内访问令牌的生成量;
如果在预设的第一时间段内的访问结果表明所述目标账户访问媒体数据均未受到惩罚,则按照预设的速率升高规则,升高所述目标请求速率并调整所述令牌集合在一个令牌生成周期内访问令牌的生成量。
8.根据权利要求6所述的装置,其特征在于,所述速率确定单元包括:
历史判断子单元,用于判断所述目标账户是否具有历史请求速率,如果所述目标账户具有历史请求速率,触发速率选择子单元,否则,触发速率设定子单元;
速率选择子单元,用于获取所述目标账户的历史请求速率以及所述目标账户以所述历史请求速率访问媒体数据的历史访问结果,并根据预设的速率确定策略,基于所述历史访问结果及所述历史请求速率确定所述目标账户的目标请求速率;
速率设定子单元,用于将预设请求速率确定为所述目标账户的目标请求速率。
9.根据权利要求8所述的装置,其特征在于,所述速率确定策略包括:访问速率优先策略和访问成功优先策略中的任一种;
如果所述速率确定策略为访问速率优先策略,则所述速率选择子单元具体用于:
从所述历史请求速率中,筛选出所述历史访问结果表明被惩罚次数低于预设的次数阈值的历史请求速率;
将被惩罚次数低于所述次数阈值的历史请求速率中的最大的历史请求速率确定为所述目标账户的目标请求速率;
如果所述速率确定策略为访问成功优先策略,则所述速率选择子单元具体用于:
从所述目标账户的历史请求速率中,查找出所述历史访问结果表明未被惩罚的最大的历史请求速率;
将查找出的历史请求速率确定为所述目标账户的目标请求速率。
10.根据权利要求6所述的装置,其特征在于,还包括:
禁止设置单元,用于如果所述访问结果表明所述目标账户访问媒体数据受到惩罚,设置所述目标账户的目标请求速率禁止升高在惩罚期内;
允许设置单元,用于如果在预设的第二时间段内所述目标账户访问媒体数据的访问结果均表明所述目标账户访问媒体数据未受到惩罚,设置所述目标账户的目标请求速率允许升高。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611260028.4A CN108270810B (zh) | 2016-12-30 | 2016-12-30 | 媒体数据访问方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611260028.4A CN108270810B (zh) | 2016-12-30 | 2016-12-30 | 媒体数据访问方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108270810A CN108270810A (zh) | 2018-07-10 |
CN108270810B true CN108270810B (zh) | 2021-08-13 |
Family
ID=62754879
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611260028.4A Active CN108270810B (zh) | 2016-12-30 | 2016-12-30 | 媒体数据访问方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108270810B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110943818A (zh) * | 2018-09-25 | 2020-03-31 | 维沃移动通信有限公司 | 配置方法、接收方法、终端及网络侧设备 |
CN112732136B (zh) * | 2020-12-30 | 2023-01-24 | 五八有限公司 | 桌面组件的添加方法、桌面组件的添加装置及终端设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101272348A (zh) * | 2008-04-30 | 2008-09-24 | 杭州华三通信技术有限公司 | 一种带宽控制的方法和系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102195819A (zh) * | 2011-05-30 | 2011-09-21 | 中兴通讯股份有限公司 | 一种网络设备及其业务流量监管方法 |
US9258249B2 (en) * | 2012-02-13 | 2016-02-09 | Microsoft Technology Licensing, Llc | Resource access throttling |
CN103929366B (zh) * | 2014-04-02 | 2017-07-07 | 华为技术有限公司 | 流量控制方法、装置及设备 |
CN104093135B (zh) * | 2014-07-18 | 2018-03-16 | 新华三技术有限公司 | 一种radius认证计费速率调整方法及装置 |
CN105635124B (zh) * | 2015-12-24 | 2019-05-14 | 小米科技有限责任公司 | 流量控制方法和装置 |
-
2016
- 2016-12-30 CN CN201611260028.4A patent/CN108270810B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101272348A (zh) * | 2008-04-30 | 2008-09-24 | 杭州华三通信技术有限公司 | 一种带宽控制的方法和系统 |
Non-Patent Citations (1)
Title |
---|
API调用次数限制实现;阿喀琉斯与乌龟;《https://zhuanlan.zhihu.com/p/20872901》;20160510;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108270810A (zh) | 2018-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108427886B (zh) | 一种应用程序访问权限设置方法、系统、设备及可读介质 | |
US8818989B2 (en) | Memory usage query governor | |
CN107770088B (zh) | 一种流量控制方法及装置 | |
JP2020518040A (ja) | サービス実行方法およびデバイス | |
CN108270810B (zh) | 媒体数据访问方法及装置 | |
CN110673798B (zh) | 一种存储系统及其io落盘方法和装置 | |
US20180225729A1 (en) | Cost-based license management methods for use in a license management system | |
CN100419692C (zh) | 管理信息处理装置的管理装置及系统 | |
CN111291252A (zh) | 一种每秒查询率的调整方法、装置、电子设备及存储介质 | |
CN109495397B (zh) | 流量控制方法及装置 | |
CN110955502B (zh) | 一种任务调度方法及装置 | |
CN111966918B (zh) | 一种用于并发访问请求的限流方法、装置以及系统 | |
CN111338803B (zh) | 一种线程处理方法和装置 | |
CN108270744B (zh) | 媒体数据访问方法及装置 | |
US9280422B2 (en) | Dynamic distribution of code words among multiple decoders | |
CN109582460B (zh) | 一种Redis内存数据的淘汰方法和装置 | |
JP5907189B2 (ja) | ストレージ制御装置、ストレージ制御方法、及び、プログラム | |
CN112631512B (zh) | 一种ssd的自适应稳态的方法和设备 | |
CN109445996B (zh) | 一种分配io流的方法、系统及相关组件 | |
CN114039893A (zh) | 一种api网关限速方法及装置 | |
CN112009240B (zh) | 一种车辆油门开度调整方法及装置 | |
CN114115915B (zh) | 一种应用实例的部署方法及装置 | |
CN113271265B (zh) | 一种请求队列动态调整方法与相关设备 | |
CN111435925B (zh) | 快照数据传输方法及装置 | |
CN113515186A (zh) | 一种计算机电源管理方法、系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100080 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: Beijing Guoshuang Technology Co.,Ltd. Address before: 100086 Cuigong Hotel, 76 Zhichun Road, Shuangyushu District, Haidian District, Beijing Applicant before: Beijing Guoshuang Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |