【技术实现步骤摘要】
一种控制业务请求数量的方法及系统
[0001]本专利技术涉及互联网、分布式服务
,特别涉及一种控制业务请求数量的方法及系统。
技术介绍
[0002]在分布式服务系统中,若上游服务在短时间内向下游服务发出大量的业务请求,那么可能会导致下游服务负载过大,对服务器资源造成冲击。对服务之间的业务请求数量进行定量的控制,能有效的避免由于请求量过载导致的服务崩溃问题,从而提升服务的健壮性。
[0003]早期业务简单,可能没有对服务之间的请求数量进行控制。随着业务的迭代,复杂度的提升,业务之间相互调用越来越频繁,对业务请求数量进行控制显得越发重要。
[0004]现有的技术中,对业务请求数量的控制的方法主要有两种:第一种为基于时间窗口的请求量控制,通过获取当前时间窗口的请求量信息,根据请求量信息从额度分配服务器获得当前请求量额度。当前请求量额度由每个业务服务器上报的请求量动态分配。该种方式,需要一个功能复杂的额度分配服务,且该方式更适用于复杂的面向前端的网关系统的访问控制。第二种为基于限流熔断服务的请求量控制,根据限流 ...
【技术保护点】
【技术特征摘要】
1.一种控制业务请求数量的方法,其特征在于,包括:接收上游服务新增的业务请求,判断所述业务请求是否需要进行请求数量限制;若需要进行请求数量限制,则获取redis请求限制服务,对未超出数量上限的业务请求进行放行,对超出数量上限的业务请求进行拒绝;若未超出数量上限,则继续处理本次业务请求,将本次业务请求发送到下游服务,以使得下游服务接收并执行本次业务请求。2.根据权利要求1所述的控制业务请求数量的方法,其特征在于,所述redis请求限制服务包括:预设redis请求时间T,在请求时间T内,本次业务请求的每条数据均持续循环遍历,直至获取到redis锁;建立有序集合,记录所有业务请求;从有序集合中删除超时未回复请求的数据;统计有序集合中已放行数据的数量,判断已放行数据的数量是否超过请求数量限制的数量上限,若超过上限,则对超出的数据持续循环获取redis锁。3.根据权利要求2所述的控制业务请求数量的方法,其特征在于,若未超过请求数量限制的数量上限,则将本次业务请求添加到有序集合中,元素类型记为已放行未回复,元素item为请求信息,元素score为当前时间戳。4.根据权利要求3所述的控制业务请求数量的方法,其特征在于,将本次业务请求发送到下游服务后,通知下游服务通过RPC接口回调请求限制器;将本次业务请求从有序集合中删除。5.根据权利要求1所述的控制业务请求数量的方法,其特征在于,还包括:实时监测是否发生上游服务负载变化事件或下游服务负载变化,若发生上游服务负载变化事件或下游服务负载变化,则获取负载调整服务。6.根据权利要求5所述的控制业务请求数量的方法,其特征在于,所述负载调整服务包括:生成负载信息,所述负载信息包括业务请求类型、当前业务请求类型对应的负载值和当前最大负载限额;当前最大负载限额为上游服务负载限额和下游服务负载限额中的较小值;上游服务负载限额根据当前启动的上游服务器数量和每台上游服务器的处理数量上限生成;下游服务负载限额根据当前启动的下游服务器数量和每台下游服务器的处理数量上限生成;根据所述负载信息,计算得到当前业务请求类型的请求数量上限;将修改后的请求数量上限发送下游服务和上游服务。7.一种控制业务请求数量的系统,...
【专利技术属性】
技术研发人员:张兵兵,张东升,姚纪卫,
申请(专利权)人:安芯网盾北京科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。