[发明专利]高并发系统的限流方法、装置、存储介质及设备在审
申请号: | 201910079932.2 | 申请日: | 2019-01-28 |
公开(公告)号: | CN111488135A | 公开(公告)日: | 2020-08-04 |
发明(设计)人: | 李绍斌;宋德超;唐杰;王沅召;张小柯 | 申请(专利权)人: | 珠海格力电器股份有限公司 |
主分类号: | G06F8/20 | 分类号: | G06F8/20 |
代理公司: | 天津三元专利商标代理有限责任公司 12203 | 代理人: | 高凤荣 |
地址: | 519070*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 并发 系统 限流 方法 装置 存储 介质 设备 | ||
本发明提供了一种高并发系统的限流方法、装置、存储介质及设备,所述方法包括:判定高并发系统的资源访问量是否满足预设的限流条件;若高并发系统的资源访问量满足预设的限流条件,则对接收到的资源访问请求进行优先级划分,并根据各个资源访问请求的优先级将资源访问请求缓存到相应优先级的缓存队列;根据缓存队列的优先级顺序依次处理各个缓存队列中的资源访问请求。本发明能够在系统高并发访问中进行限流并保证核心系统的正常运行,提升用户体验。
技术领域
本发明涉及系统设计技术领域,尤其涉及一种高并发系统的限流方法、装置、存储介质及设备。
背景技术
在高并发的系统设计中,为了保护系统正常运行,限流是最常用的方法之一。常用的限流算法有计数器、令牌桶、漏桶算法,其中:
令牌桶限流:令牌桶是一个存放固定容量令牌的桶,按照固定速率往桶里添加令牌,填满了就丢弃令牌,请求是否被处理要看桶中令牌是否足够,当令牌数减为零时则拒绝新的请求。令牌桶允许一定程度突发流量,只要有令牌就可以处理,支持一次拿多个令牌。令牌桶中装的是令牌。
漏桶限流:漏桶一个固定容量的漏桶,按照固定常量速率流出请求,流入请求速率任意,当流入的请求数累积到漏桶容量时,则新流入的请求被拒绝。漏桶可以看作是一个具有固定容量、固定流出速率的队列,漏桶限制的是请求的流出速率。漏桶中装的是请求。
计数器限流:有时我们还会使用计数器来进行限流,主要用来限制一定时间内的总并发数,比如数据库连接池、线程池、秒杀的并发数;计数器限流只要一定时间内的总请求数超过设定的阀值则进行限流,是一种简单粗暴的总数量限流,而不是平均速率限流。
常用的限流级别是网关级限流或应用级限流等,其中:网关级限流是在系统访问总入口处设置代理服务器(Nginx等),通过代理服务器设置资源访问量上限把一些多余地资源过滤掉;应用级限流就是在应用系统中采用限流算法拒绝多余的资源访问请求。
以上限流算法只是通过把多余的请求抛弃,以进行简单粗暴地限流,这样必然会导致一些重要核心的资源访问请求得不到响应,以至于核心系统无法正常运行,使得实际生产环境存在巨大的漏洞。
发明内容
鉴于上述问题,本发明提出了一种高并发系统的限流方法、装置、存储介质及设备,能够在系统高并发访问中进行限流并保证核心系统的正常运行,提升用户体验。
本发明的一个方面,提供了一种高并发系统的限流方法,所述方法包括:
判定所述高并发系统的资源访问量是否满足预设的限流条件;
若所述高并发系统的资源访问量满足预设的限流条件,则对接收到的资源访问请求进行优先级划分,并根据各个资源访问请求划分后的所述优先级将资源访问请求缓存到相应优先级的缓存队列;
根据缓存队列的优先级顺序依次处理各个缓存队列中的资源访问请求。
可选地,所述对接收到的资源访问请求进行优先级划分,包括:
按照预设的优先级划分标准以及接收到的资源访问请求的业务类型,划分各个资源访问请求的优先级,所述优先级划分标准中包括业务类型与业务类型所属优先级之间的对应关系。
可选地,所述对接收到的资源访问请求进行优先级划分,包括:
提取接收到的各个资源访问请求中携带的优先级标识,根据提取的优先级标识划分对应资源访问请求的优先级。
可选地,所述根据各个资源访问请求划分后的所述优先级将资源访问请求缓存到相应优先级的缓存队列,包括:
对于同一优先级的资源访问请求,将时效长的资源访问请求优先缓存到相应优先级的缓存队列。
可选地,所述方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于珠海格力电器股份有限公司,未经珠海格力电器股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910079932.2/2.html,转载请声明来源钻瓜专利网。