【技术实现步骤摘要】
一种基于队列的请求频次控制系统及控制方法
本专利技术属于网络信息处理领域,具体涉及一种基于队列的请求频次控制系统及控制方法。
技术介绍
在当下信息时代,各行各业都在进行信息化展开,众多行业的参与者形成了庞大且错综复杂的信息生态。个体要进入这个生态,自身的信息必不可少,更重要的是要和其他目标对象连接。这里就涉及到程序化接口API(ApplicationProgrammingInterface)对接。具体的,由服务提供方暴露一个接口,服务的使用方通过调用该接口传入合适的参数即可获得想要的结果。比如气象站作为服务提供方对外暴露了一个天气预报接口,使用方只需提供地理坐标和时间范围就能获得目标地区指定时间的天气情况。这样一来,该服务使用单位就与气象站建立了有效连接。然而,随着越来越多的使用方和气象站建立连接,为了获得更及时的天气变化,有些使用方发起了更频繁的查询,又或者有黑客发起网络攻击,不停的发起天气查询,最终导致服务提供方的服务压力过大,使服务不可用。服务提供方会做一些措施来避免这一可预见情况的发生,基本的措施有:1.权限认证。给每个服务使用方设定唯一的身份和对应的认证签名。确保所有服务的使用方都在提供方有备案记录,不明来源的请求不提供服务,只返回对应错误码。2.频次控制。已备案的服务使用方也不能无限制的发起请求,必须满足每秒不能超过多少次QPS(QueriesPerSecond),更复杂的会按业务类型分等级限制。对于服务提供方,收到已备案的服务使用者发来的超过配额的请求时,不执行业务逻辑,直接范围对应错误码。若错误的情况 ...
【技术保护点】
1.一种基于队列的请求频次控制系统,其特征在于,包括客户端和系统服务端,通过将客户端与系统服务端连接,实现请求发送和任务结果接收;系统服务端包括Broker模块、Worker模块、Limiter模块、Backend模块、Controller模块以及Monitor模块;/n所述Broker模块用于无限制的接收业务通过客户端发送的请求Task,接收后全部用Topic分组存储于有序队列中,以请求的优先级作为排序因子,等待Worker模块按顺序执行;/n所述Worker模块从有序队列中按优先级拿取请求对象并执行,执行结果传给Backend模块而后回调给业务,执行频率受Limiter模块控制;/n所述Limiter模块用于设定最高的流出速率限制,实现各类频控策略;/n所述Backend模块用于将Worker模块执行结果存储并回调给客户端,触达业务系统;/n所述Controller模块用于接收控制指令进行系统维护和队列调整;/n所述Monitor模块用于监控系统所需各类状态指标,包括业务状态和自身运行状态。/n
【技术特征摘要】
1.一种基于队列的请求频次控制系统,其特征在于,包括客户端和系统服务端,通过将客户端与系统服务端连接,实现请求发送和任务结果接收;系统服务端包括Broker模块、Worker模块、Limiter模块、Backend模块、Controller模块以及Monitor模块;
所述Broker模块用于无限制的接收业务通过客户端发送的请求Task,接收后全部用Topic分组存储于有序队列中,以请求的优先级作为排序因子,等待Worker模块按顺序执行;
所述Worker模块从有序队列中按优先级拿取请求对象并执行,执行结果传给Backend模块而后回调给业务,执行频率受Limiter模块控制;
所述Limiter模块用于设定最高的流出速率限制,实现各类频控策略;
所述Backend模块用于将Worker模块执行结果存储并回调给客户端,触达业务系统;
所述Controller模块用于接收控制指令进行系统维护和队列调整;
所述Monitor模块用于监控系统所需各类状态指标,包括业务状态和自身运行状态。
2.根据权利要求1所述基于队列的请求频次控制系统,其特征在于:所述Worker模块根据目标平台所指定的频控器结合对应配置参数来控制消费速率。
3.根据权利要求1所述基于队列的请求频次控制系统,其特征在于,所述Limiter模块实现的频控策略包括以下几类:
a.匀速控制策略,某段时间内不超过设定次数;
b.根据返回值控制频率,根据请求返回结果中配额已使用情况进行频率控制;
c.分等级控制,按照业务的层级结构分别设置配额,客户端发送的请求同时消耗多个级别的配额,其中任何一个超限则视为超限并返回对应错误码。
4.根据权利要求1所述基于队列的请求频次控制系统,其特征在于,所述的Backend模块回调HttpURL,任务完成后通过该地址回调业务;或者使用MQ...
【专利技术属性】
技术研发人员:程进凯,
申请(专利权)人:西安点告网络科技有限公司,
类型:发明
国别省市:陕西;61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。