一种基于用户session的网关限流方法及系统技术方案

技术编号:39052705 阅读:5 留言:0更新日期:2023-10-12 19:45
本申请提供了一种基于用户session的网关限流方法及系统,其特征在于,包括:S1、接收第一用户的登录请求,判断第一用户是否存在登录记录;S2、如果第一用户存在登录记录,则判断第一队列是否满足分区限制条件,如果满足,则基于LRU算法将第一用户session放入到第一队列;S3、如果不满足分区限制条件,则基于LRU算法淘汰第一队列排名最后的第二用户session,之后基于LRU算法将所述第一用户session放入到第一队列;S4、更新所述第一用户session的最后访问时间,基于LRU算法对第一队列进行更新;S5、响应于所述第一用户的访问请求,对第一用户提供网关服务。本发明专利技术复用已存在的用户session和\或token机制,利用LRU算法实现网关限流,提高了用户体验。高了用户体验。高了用户体验。

【技术实现步骤摘要】
一种基于用户session的网关限流方法及系统


[0001]本专利技术涉及计算机相关的
,尤其涉及一种基于用户session的网关限流方法及系统。

技术介绍

[0002]目前已有技术对于网关接口限流策略往往是接口级,如对网关接口(API)进行基于次数或者令牌桶算法的限流,在业务突发情况下,流量可能成N倍的增加,普通的限流算法如果局限于接口级限流则会出现用户在一系列连续操作的情况下,出现部分接口请求被限制,部分情况未被限制的情况,在这种情况下,用可能户会反复刷新,造成流量放大,最终导致用户体验变差。
[0003]本申请针对以上缺陷,本申请通过复用用户登录时存在的session和\或token机制,在用户存在访问记录的情况下,利用LRU算法将用户的访问进行排序,结合LRU算法对最可能进行访问的用户顺序进行排列,实现了接口内的网关限流,在用户刷新及其他操作的情况下,不会因为单独用户的操作造成流量放大,提升了用户的体验。

技术实现思路

[0004]为解决现有状况的不足,本专利技术针对以上
技术介绍
的缺陷,本专利技术提出了一种基于用户session的网关限流方法及系统。具体包括:
[0005]本申请第一方面提出了一种基于用户session的网关限流方法,其特征在于,包括:
[0006]S1、接收第一用户的登录请求,判断第一用户是否存在登录记录;
[0007]S2、如果第一用户存在登录记录,则判断第一队列是否满足分区限制条件,如果满足,则基于LRU算法将第一用户session放入到第一队列;
[0008]S3、如果不满足分区限制条件,则基于LRU算法淘汰第一队列排名最后的第二用户session,之后基于LRU算法将所述第一用户session放入到第一队列;
[0009]S4、更新所述第一用户session的最后访问时间,基于LRU算法对第一队列进行更新;
[0010]S5、响应于所述第一用户的访问请求,对第一用户提供网关服务。
[0011]进一步的,所述S1还包括:如果所述第一用户不存在登录记录,则基于预设接口限流策略进行网关限流。
[0012]进一步的,所述分区限制条件包括预定城市的数量限制条件。
[0013]进一步的,所述S2中基于LRU算法将第一用户session放入到第一队列包括:将第一用户的token放入到第一队列最前端。
[0014]进一步的,所述S3中淘汰第一队列排名最后的第二用户session包括:判断第二用户session是否满足淘汰条件,如果满足淘汰条件则淘汰第二用户session。
[0015]进一步的,基于hashmap和双向链表记录第一队列,所述双向链表还记录第一用户
的最后访问时间。
[0016]进一步的,所述方法还包括设置预定有效时间的第一登录令牌,所述第一登录令牌用于预定时间的重复登录。
[0017]本申请第二方面提出了一种基于用户session的网关限流装置,其特征在于,包括:
[0018]判断登录模块,用于接收第一用户的登录请求,判断第一用户是否存在登录记录;
[0019]限制排列模块,用于如果第一用户存在登录记录,则判断第一队列是否满足分区限制条件,如果满足,则基于LRU算法将第一用户session放入到第一队列;
[0020]淘汰排列模块,用于如果不满足分区限制条件,则基于LRU算法淘汰第一队列排名最后的第二用户session,之后基于LRU算法将所述第一用户session放入到第一队列;
[0021]更新模块,用于更新所述第一用户session的最后访问时间,基于LRU算法对第一队列进行更新;
[0022]服务模块,用于响应于所述第一用户的访问请求,对第一用户提供网关服务。
[0023]本申请第三方面提出了一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
[0024]所述存储器存储计算机执行指令;
[0025]所述处理器执行所述存储器存储的计算机执行指令,以实现上述的基于用户session的网关限流方法。
[0026]本申请第四方面提出了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述的基于用户session的网关限流方法。
[0027]本专利技术的有益效果为:本申请通过复用用户登录时存在的session和\或token机制,在用户存在访问记录的情况下,利用LRU算法将用户的访问进行排序,结合LRU算法对最可能进行访问的用户顺序进行排列,实现了接口内的网关限流,在用户刷新及其他操作的情况下,不会因为单独用户的操作造成流量放大,提升了用户的体验。
附图说明
[0028]图1为本专利技术的基于用户session的网关限流方法的流程示意图。
[0029]图2为本专利技术的基于用户session的网关限流装置的结构框图。
[0030]图3为本专利技术的实施例提供的电子设备的结构示意图。
具体实施方式
[0031]为了更清楚的理解本专利技术的内容,将结合附图和实施例详细说明。
[0032]但是应该理解,这些描述只是示例性的,而并非要限制本专利技术的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本专利技术的概念。在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本专利技术。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。此外,在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
[0033]在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。本专利技术是已有专利技术的改进,所以对于本申请未描述的部分以现有技术来实现。
[0034]LRU算法:(Least recently used),最近最少使用算法,算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。
[0035]用户Session:Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。用户session指用户通过APP进行登录之后和服务端保持的一个会话状态,浏览器一般通过cookie来实现,手机app等一般会通过基于token的机制来实现
[0036]目前网关接口限流策略往往是接口级,如对网关接口(API)进行基于次数或者令牌桶算法的限流,在业务突发情况下,流量可能成N倍的增加,普通的限流算法如果局限于接口级限流则会出现用户在一系列连续操作的情况下,出现部分接口请求被限制,部分情况未被限制的情况,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于用户session的网关限流方法,其特征在于,包括:S1、接收第一用户的登录请求,判断第一用户是否存在登录记录;S2、如果第一用户存在登录记录,则判断第一队列是否满足分区限制条件,如果满足,则基于LRU算法将第一用户session放入到第一队列;S3、如果不满足分区限制条件,则基于LRU算法淘汰第一队列排名最后的第二用户session,之后基于LRU算法将所述第一用户session放入到第一队列;S4、更新所述第一用户session的最后访问时间,基于LRU算法对第一队列进行更新;S5、响应于所述第一用户的访问请求,对第一用户提供网关服务。2.根据权利要求1所述的方法,其特征在于,所述S1还包括:如果所述第一用户不存在登录记录,则基于预设接口限流策略进行网关限流。3.根据权利要求1所述的方法,其特征在于,所述分区限制条件包括预定城市的数量限制条件。4.根据权利要求1所述的方法,其特征在于,所述S2中基于LRU算法将第一用户session放入到第一队列包括:将第一用户的token放入到第一队列最前端。5.根据权利要求1所述的方法,其特征在于,所述S3中淘汰第一队列排名最后的第二用户session包括:判断第二用户session是否满足淘汰条件,如果满足淘汰条件则淘汰第二用户session。6.根据权利要求1所述的方法,其特征在于,基于hashmap和双向链表记录第一队列,所述...

【专利技术属性】
技术研发人员:陈鹏飞孙炎森徐晓剑
申请(专利权)人:中信银行股份有限公司
类型:发明
国别省市:

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

1