面向系统间访问的精确流量控制方法及装置制造方法及图纸

技术编号:24763665 阅读:27 留言:0更新日期:2020-07-04 11:00
本发明专利技术提供了一种面向系统间访问的精确流量控制方法及装置。所述方法包括:判断自定义流控规则是否存在;如果规则不存在,初始化流控令牌、初始放置令牌数量,并且设置过期时间,过期时间的设置值大于流控周期;如果规则存在,将当前请求时间和当前规则的最后放置令牌时间做比较,如果二者之间间隔超过流控周期,根据最大流控规则向分布式缓存中放置流控令牌,间隔未超过周期,根据自定义流控法规则,向分布式缓存中放置流控令牌,并且重置最后放置令牌时间;获取流控令牌成功,执行请求。本发明专利技术提供的面向系统间访问的精确流量控制方法及装置基于分布式缓存实现的令牌桶的算法,实现了更为高效、精准的流量控制。

Accurate flow control method and device for inter system access

【技术实现步骤摘要】
面向系统间访问的精确流量控制方法及装置
本专利技术涉及分布式数据处理
,特别是涉及一种面向系统间访问的精确流量控制方法及装置。
技术介绍
在公开号为CN102404796B的中国专利技术专利申请中提到了为了应对网络用户规模的急剧增长,不断的改善网络硬件设备以及软件的性能。但是,仍然不能提供令用户满意的服务。主要研究了在大量并发用户存在的情况下如何应用通信代理技术、数据库连接池、集群技术改善数据库服务器的性能,为用户提供正常的网络服务。对大量并发用户的访问控制技术作了深入的探索和研究,采用的技术主要有通信代理技术、建立数据库连接池、优化程序设计以及使用集群技术。在客户端登录服务器时,客户端不仅需要和数据库建立连接,向数据库传送各种信息,而且在数据库连接建立以后,还需要保持连接,这就要耗费大量的服务器资源。当用户量较多的时候,容易造成占用数据库服务器资源过多,导致数据库服务器整体性能下降,通过通信代理服务器负责监控网络上传输的数据,对访问数据库的数据进行采集、分析和过滤,然后将处理后的数据放人数据库连接池队列,通过较少的连接数实现对数据库的连接,同时,提出了储过程来提高数据库开发人员的工作效率和程序执行的效率,其本质就是提供一种手段让开发人员把常用的SQL语句存储在数据库中以便能重复使用。在公开号为CN106817424A的中国专利技术专利申请中,提到了一种用于控制访问流量的方法及系统。所述方法包括:接收外围系统的业务请求;根据所述外围系统的业务请求时间判断所述外围系统的访问量是否超过多级访问量阈值,所述多级访问量阈值根据不同的业务请求时间,设定不同的访问量阈值;以及如果所述外围系统的所述访问量未超过所述多级访问量阈值,则处理所述业务请求,用于控制访问流量的方法,能够防止由于外围系统异常流量访问而给核心系统造成的压力。以上两种流量控制方法,都存在着控制方式单一,限流操作不够精准的问题。
技术实现思路
本专利技术要解决的技术问题是提供一种面向系统间访问的精确流量控制方法及装置,基于分布式缓存实现的令牌桶的算法,实现了更为高效、精准的流量控制。为解决上述技术问题,本专利技术提供了一种面向系统间访问的精确流量控制方法,所述方法包括:判断自定义流控规则是否存在;如果规则不存在,初始化流控令牌、初始放置令牌数量,并且设置过期时间,过期时间的设置值大于流控周期;如果规则存在,将当前请求时间和当前规则的最后放置令牌时间做比较,如果二者之间间隔超过流控周期,根据最大流控规则向分布式缓存中放置流控令牌,间隔未超过周期,根据自定义算法规则,向分布式缓存中放置流控令牌,并且重置最后放置令牌时间;获取流控令牌成功,执行请求。在一些实施方式中,根据最大流控规则放置流控令牌时,单位时间内放置流控令牌的数量为最大值。在一些实施方式中,根据自定义算法规则放置流控令牌时,放置流控令牌数量根据如下公式计算:n=delta/(1/qps)其中,n为放置流控令牌数量,delta为当前请求时间和当前规则的最后放置令牌时间之间的时间间隔,qps为单位时间放置令牌的数量。在一些实施方式中,过期时间的设置值为两倍流控周期。在一些实施方式中,还包括:在向分布式缓存中放置流控令牌之后,获取流控令牌失败,拒绝请求。在一些实施方式中,还包括:根据访问控制列表对访问流量进行流量控制,在进行流量控制之前,需要保证令牌初始化、访问控制列表加载成功。在一些实施方式中,根据访问控制列表对访问流量进行流量控制,包括:根据标准访问控制列表或扩展访问控制列表对访问流量进行流量控制。在一些实施方式中,根据标准访问控制列表对访问流量进行流量控制,包括:根据数据包的源IP地址、自定义规则,进行数据包的过滤。在一些实施方式中,根据扩展访问控制列表对访问流量进行流量控制,包括:根据数据包的源IP地址、目的IP地址、源端口号、目的端口号和协议来定义规则,以及其他自定义的规则,从而进行数据包的过滤。此外,本专利技术还提供了一种面向系统间访问的精确流量控制装置,所述装置包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现根据前文所述的面向系统间访问的精确流量控制方法。采用这样的设计后,本专利技术至少具有以下优点:1)精准的流量控制,保证系统间访问在大并发请求下运行稳定;2)多种流量控制算法的支持,其中对于分布式缓存实现的令牌桶的算法,处理更为高效;3)多维度的系统访问流量控制的配置,可根据一定的规则如账号、IP、系统调用逻辑层面的限流。附图说明上述仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,以下结合附图与具体实施方式对本专利技术作进一步的详细说明。图1是现有技术提供的漏桶算法的原理示意图;图2是现有技术提供的令牌桶算法的原理示意图;图3是本专利技术实施例提供的基于分布式缓存实现的令牌桶的流程示意图;图4是本专利技术实施例提供的根据一定的规则如账号、IP、系统调用逻辑层面的限流的流程示意图;图5是本专利技术实施例提供的面向系统间访问的精确流量控制装置的结构示意图。具体实施方式以下结合附图对本专利技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本专利技术,并不用于限定本专利技术。限流,是服务或者应用对自身保护的一种手段,通过限制或者拒绝调用方的流量,来保证自身的负载,此项专利技术主要强调系统间访问的灵活的多维度流量配置以及精准的流量控制方法,保证系统间访问压力的合理、控制访问流量,主要涉及的内容为:目前专利技术中的限流算法主要有:漏桶算法和令牌桶算法。1)漏桶算法漏桶(LeakyBucket)算法思路很简单,水(请求)先进入到漏桶里,漏桶以一定的速度出水(接口有响应速率),当水流入速度过大会直接溢出(访问频率超过接口响应速率),然后就拒绝请求,可以看出漏桶算法能强行限制数据的传输速率。示意图请参见图1。可见这里有两个变量,一个是桶的大小,支持流量突发增多时可以存多少的水(burst),另一个是水桶漏洞的大小(rate)。因为漏桶的漏出速率是固定的参数,所以,即使网络中不存在资源冲突(没有发生拥塞)。漏桶算法也不能使流突发(burst)到端口速率。因此,漏桶算法对于存在突发特性的流量来说缺乏效率。2)令牌桶算法令牌桶算法(TokenBucket)和LeakyBucket效果一样但方向相反的算法,更加容易理解。随着时间流逝,系统会按恒定1/QPS时间间隔(如果QPS=100,则间隔是10ms)往桶里加入Token,如果桶已经满了就不再加了。新请求来临时,会各自拿走一个Token,如果没有Token可拿了就阻塞或者拒绝服务。令牌桶的另外一个好处是可以方便的改变速度。一旦需要提高速率,则按需提高放入桶中的令牌的速率。一般会定时(比如1000毫秒)往桶中增加一定数量的令牌,有本文档来自技高网
...

【技术保护点】
1.一种面向系统间访问的精确流量控制方法,其特征在于,包括:/n判断自定义流控规则是否存在;/n如果规则不存在,初始化流控令牌、初始放置令牌数量,并且设置过期时间,过期时间的设置值大于流控周期;/n如果规则存在,将当前请求时间和当前规则的最后放置令牌时间做比较,如果二者之间间隔超过流控周期,根据最大流控规则向分布式缓存中放置流控令牌,间隔未超过周期,根据自定义流控规则,向分布式缓存中放置流控令牌,并且重置最后放置令牌时间;/n获取流控令牌成功,执行请求。/n

【技术特征摘要】
1.一种面向系统间访问的精确流量控制方法,其特征在于,包括:
判断自定义流控规则是否存在;
如果规则不存在,初始化流控令牌、初始放置令牌数量,并且设置过期时间,过期时间的设置值大于流控周期;
如果规则存在,将当前请求时间和当前规则的最后放置令牌时间做比较,如果二者之间间隔超过流控周期,根据最大流控规则向分布式缓存中放置流控令牌,间隔未超过周期,根据自定义流控规则,向分布式缓存中放置流控令牌,并且重置最后放置令牌时间;
获取流控令牌成功,执行请求。


2.根据权利要求1所述的面向系统间访问的精确流量控制方法,其特征在于,根据最大流控规则放置流控令牌时,单位时间内放置流控令牌的数量为最大值。


3.根据权利要求1所述的面向系统间访问的精确流量控制方法,其特征在于,根据自定义算法规则放置流控令牌时,放置流控令牌数量根据如下公式计算:
n=delta/(1/qps)
其中,n为放置流控令牌数量,delta为当前请求时间和当前规则的最后放置令牌时间之间的时间间隔,qps为单位时间放置令牌的数量。


4.根据权利要求1所述的面向系统间访问的精确流量控制方法,其特征在于,过期时间的设置值为两倍流控周期。


5.根据权利要求1所述的面向系统间访问的精确流量控制方法,其特征在于,还包括:
在向分布式...

【专利技术属性】
技术研发人员:周侃陈宏鸿范兴泽
申请(专利权)人:神州数码融信软件有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1