掌桥专利:专业的专利平台
掌桥专利
首页

用户访问方法和网络设备

文献发布时间:2023-06-19 19:16:40


用户访问方法和网络设备

技术领域

本发明涉及通信领域,尤其涉及一种用户访问方法和网络设备。

背景技术

当存在多个客户端,基于同一网关访问相同的服务时,由于网络资源是有限的,因此网关设备难以保证所有客户端的网络质量,这种情况下通常需要对接入的客户端进行限流。一般而言,现有技术中对于客户端多是基于ip地址、路径path等维度来实现限流,这种限流方式属于间接限流,固然可以起到一定的作用,但是难以满足针对用户数量的网络资源的合理分配。

因此,如何针对用户数量进行网络限流,是亟需解决的问题。

发明内容

鉴于上述相关技术的不足,本申请的目的在于提供一种用户访问方法和网络设备,旨在解决现有技术中针对网关设备的限流方式不够直接,难以满足针对用户数量的网络资源的合理分配。

为了解决上述技术问题,本发明实施例提供一种用户访问方法,包括:

接收当前终端设备发起的服务请求消息;

解析所述服务请求消息,获取其中携带的用户标识信息,并确定所述服务请求消息所对应的服务;

判断已访问所述服务对应的用户标识信息的数量是否大于等于最大访问用户数;若是,则拒绝所述当前终端设备的接入;若否,则将所述当前终端设备路由到对应的服务。

在本发明中,通过接收当前终端设备发起的服务请求消息,从中提取用户标识信息和对应的服务,然后基于用户标识信息来判断已访问对应服务的用户数量是否超过最大访问用户数,然后可以基于判断结果分别执行拒绝接入或者是路由到对应服务的操作,直接从用户数量的层面直接实现了用户的限流,从而提升了网络资源分配的时效性和合理性,提升了用户体验。

可选的,所述判断已访问所述服务对应的用户标识信息的数量是否大于等于最大访问用户数中,所述已访问所述服务对应的用户标识信息包括:

当前正在访问所述服务对应的用户标识信息;

或,当前网关的缓存列表中存在的用户标识信息。

基于不同维度的针对用户访问对应服务的考虑,可以实现基于不同情况下的用户限流,可以适应更多的场景。

可选的,在所述判断已访问所述服务对应的用户标识信息的数量是否大于等于最大访问用户数之前,还包括:

判断是否存在与所述服务对应的缓存列表;

若否,则创建所述缓存列表,并将所述当前终端设备对应的用户标识信息添加至所述缓存列表中。

通过设置缓存列表,可以更加快速准确的进行已访问用户的判断,而基于缓存列表的时间属性又可以比较便利的将以往的用户标识信息删除,从而可以提升系统效率。

可选的,所述创建所述缓存列表,并将所述当前终端设备对应的用户标识信息添加至所述缓存列表中包括:

创建带有过期时间的key-value键值对缓存,并将所述用户标识信息放入所述键值对缓存的value中。

可选的,所述判断已访问所述服务对应的用户标识信息的数量是否大于等于最大访问用户数包括:

判断所述当前终端设备对应的所述用户标识信息在所述缓存列表中是否存在;

若是,则将所述当前终端设备路由到对应的服务。

可选的,所述判断所述当前终端设备对应的所述用户标识信息在所述缓存列表中是否存在之后,还包括:

所述当前终端设备对应的所述用户标识信息在所述缓存列表中不存在,则判断所述缓存列表中的用户标识信息的数量是否大于等于最大访问用户数;

若是,则拒绝所述当前终端设备的接入;若否,则将所述当前终端设备路由到对应的服务。

可选的,所述解析所述服务请求消息,获取其中携带的用户标识信息包括:

获取所述服务请求消息的消息头;

从所述消息头中,得到与用户信息对应的token,将所述token作为所述用户标识信息。

可选的,在所述拒绝所述当前终端设备的接入之后,还包括:

向所述当前终端设备返回请求过多响应。

可选的,在所述判断已访问所述服务对应的用户标识信息的数量是否大于等于最大访问用户数之前,还包括:

查找所述请求对应的路由配置;

若不存在所述请求对应的路由配置,则直接返回服务不存在响应。

基于同样的发明构思,本发明实施例还提供一种网络设备,所述网络设备包括处理器、存储器及通信总线;

所述通信总线用于实现所述处理器和存储器之间的连接通信;

所述处理器用于执行所述存储器中存储的一个或者多个计算机程序,以实现上述的用户访问方法的步骤。

附图说明

图1为本发明实施例提供的用户访问方法流程图;

图2为本发明另一可选实施例提供的另一用户访问方法流程图;

图3为本发明又一可选实施例提供的网络设备组成示意图。

具体实施方式

为了便于理解本申请,下面将参照相关附图对本申请进行更全面的描述。附图中给出了本申请的较佳实施方式。但是,本申请可以以许多不同的形式来实现,并不限于本文所描述的实施方式。相反地,提供这些实施方式的目的是使对本申请的公开内容理解的更加透彻全面。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是旨在于限制本申请。

在现有技术中,当存在多个客户端,基于同一网关访问相同的服务时,通常采取的方案多是基于ip地址、path等维度来实现限流,这种限流方式属于间接限流,固然可以起到一定的作用,但是难以满足针对用户数量的网络资源的合理分配。

基于此,本申请希望提供一种能够解决上述技术问题的方案,其详细内容将在后续实施例中得以阐述。

为了解决上述技术问题,本发明实施例提供一种用户访问方法,请参考图1,该用户访问方法包括:

S101、接收当前终端设备发起的服务请求消息;

S102、解析服务请求消息,获取其中携带的用户标识信息,并确定服务请求消息所对应的服务;

S103、判断已访问服务对应的用户标识信息的数量是否大于等于最大访问用户数;若是,则拒绝当前终端设备的接入;若否,则将当前终端设备路由到对应的服务。

本发明实施例中的用户访问方法,涉及的是终端用户基于网关设备,对服务发起的访问。其中,网关设备具体可以包括各AP(Access Point,无线接入点),路由器等等。终端用户的具体类型则可以包括各种具有无线网络通信功能的移动设备,包括但不限于手机、个人电脑PC、平板电脑PAD、智能穿戴手表、智能穿戴手环等等。在本发明实施例中,对于本次用户访问方法的执行流程而言,对应的用户设备即为当前终端设备,也就是以当前终端设备访问服务对应的流程。

当前终端设备为了访问服务,首先需要向网关设备发起服务请求消息。服务请求消息中一般会携带与用户登录信息相关的用户标识信息,以及与所要访问的服务对应的信息。其中,与用户登录信息相关的用户标识信息可以作为用户的身份信息,以区分各个不同的终端设备。

具体的,在网关设备接收到当前终端设备发起的服务请求消息之后,网关设备会对该服务请求消息进行解析,以从该服务请求消息中获取所需的用户标识信息,并确定该服务请求消息所对应的服务。其中,在一些可选实施例中,解析服务请求消息,获取其中携带的用户标识信息具体可以包括:

获取服务请求消息的消息头;

从消息头中,得到与用户信息对应的token,将token作为用户标识信息。token在身份认证中表示的是令牌,一般作为邀请、登录系统使用。其中,token的一般性组成可以包括用户唯一标识符uid、时间戳time以及签名sign构成的字符串,其通常作为访问资源接口API所需的资源凭证。

在解析得到用户标识信息之后,网关设备会判断已访问服务对应的用户标识信息的数量与最大访问用户数之间的关系;具体而言,对于想要接入的当前终端设备而言,需要当前已访问服务对应的用户数,小于最大访问用户数,才能容许当前终端设备来访问服务。也就是说,如果判断结果是已访问服务对应的用户标识信息的数量,大于等于最大访问用户数,那么就会拒绝当前终端设备的接入,使得当前终端设备无法访问对应的服务;而如果判断结果是已访问服务对应的用户标识信息的数量,小于最大访问用户数,那么就有当前终端设备接入的空间,此时就将当前终端设备路由到对应的服务。

其中,对于不同维度的已访问服务对应的用户数的判断,本发明实施例至少分为两种情况:

其一,是指当前正在访问对应服务的用户数。这种情况属于多个设备并行访问,对于当前已访问服务对应的用户标识信息的判断也相对严格,而对于网络资源的把控也更加精准,可以做到及时准确的判定当前终端设备是否满足用户数需求,从而决定其接入与否。

其二,是指在缓存时间内,正在访问或访问过对应服务的用户数。这种情况所表示的是,当前终端设备,或者是其他终端设备之前成功访问过对应服务,那么在之后一定时间内(即为缓存时间),终端设备可以再次访问,而不会因用户数过多被拒绝访问。换言之,在缓存时间内,在网关设备中已存在用户标识信息对应的终端设备都可以再度访问服务,即便这些终端设备当前没有接入。

因此,基于上述判断方案,本发明实施例中判断已访问服务对应的用户标识信息的数量是否大于等于最大访问用户数中,已访问服务对应的用户标识信息具体可以包括:

当前正在访问服务对应的用户标识信息;

或,当前网关的缓存列表中存在的用户标识信息。缓存列表中所存在的用户标识信息所指的是在缓存时间内访问过服务的终端设备对应的用户标识信息,对于那些超过缓存时间的终端设备,其用户标识信息会被删除。基于不同维度的针对用户访问对应服务的判断,可以实现基于不同情况下的用户限流,以适应更多的场景。

在一些可选实施例中,在判断已访问服务对应的用户标识信息的数量是否大于等于最大访问用户数之前,还可以包括:

判断是否存在与服务对应的缓存列表;

若否,则创建缓存列表,并将当前终端设备对应的用户标识信息添加至缓存列表中。如果在当前终端设备发送服务请求消息时,网关设备中没有对应的缓存列表,这表示在一定时间内没有任何终端设备访问对应的服务,对于当前终端设备而言,是第一个访问对应服务的设备,此时当前终端设备无疑是可以直接访问;因此,为了当前终端设备的及时访问,以及后续可能存在的其他终端设备的访问,可以创建缓存列表,并且直接将当前终端设备的用户标识信息添加至缓存列表中,而此时缓存列表中只存在当前终端设备这一个对应的用户标识信息,因此可以直接将当前终端设备路由到指定服务。

其中,本发明实施例中通过设置缓存列表,可以更加快速准确的进行已访问用户的判断,而基于缓存列表的缓存时间又可以比较便利的将以往的用户标识信息删除,从而可以提升系统效率。

在一些可选实施例中,创建缓存列表,并将当前终端设备对应的用户标识信息添加至缓存列表中具体可以包括:

创建带有过期时间的key-value键值对缓存,并将用户标识信息放入键值对缓存的value中。其中过期时间表示的就是缓存时间,而key-value键值对中,key是字符串类型,value是不可重复的集合类型,用户标识信息就对应放入value中。

在一些可选实施例中,当基于缓存列表来进行用户标识信息的判断,并决定当前终端设备的接入与否时,判断已访问服务对应的用户标识信息的数量是否大于等于最大访问用户数具体可以包括:

判断当前终端设备对应的用户标识信息在缓存列表中是否存在;

若是,则将当前终端设备路由到对应的服务。这表示的是在缓存时间内当前终端设备接入过对应的服务,那么已访问服务的用户数就不会超过最大访问用户数,因为当前终端设备已经属于已访问服务中的一员。而如果当前终端设备的用户标识信息不存在与缓存列表中,则表示当前终端设备在缓存时间内没有访问对应的服务,这可能表示当前终端设备自始至终都没有访问过,或者是当前终端设备在之前访问之后,间隔时间超过了缓存时间。那么,在这种情况下,判断当前终端设备对应的用户标识信息在缓存列表中是否存在之后,还可以包括:

当前终端设备对应的用户标识信息在缓存列表中不存在,则判断缓存列表中的用户标识信息的数量是否大于等于最大访问用户数;

若是,则拒绝当前终端设备的接入;若否,则将当前终端设备路由到对应的服务。这种情况下就可以直接基于当前缓存列表中的用户标识信息的数量与最大访问用户数的关系来确定是否让当前终端设备接入。对于判定接入的当前终端设备而言,其对应的用户标识信息也相应的存储于缓存列表中,以便后续的接入。

在一些可选实施例中,在拒绝当前终端设备的接入之后,还可以包括:

向当前终端设备返回请求过多响应。例如,请求过多响应具体可以是“429请求过多”。

在一些可选实施例中,在判断已访问服务对应的用户标识信息的数量是否大于等于最大访问用户数之前,还可以包括:

查找请求对应的路由配置;

若不存在请求对应的路由配置,则直接返回服务不存在响应。例如,服务不存在响应具体可以是“404响应”。

本发明实施例中,终端设备与网关设备之间可以采用HTTP/HTTPS协议进行连接,而网关设备路由到后续服务也可以采用HTTP/HTTPS协议进行连接。

在本发明实施例中,通过接收当前终端设备发起的服务请求消息,从中提取用户标识信息和对应的服务,然后基于用户标识信息来判断已访问对应服务的用户数量是否超过最大访问用户数,然后可以基于判断结果分别执行拒绝接入或者是路由到对应服务的操作,直接从用户数量的层面直接实现了用户的限流,从而提升了网络资源分配的时效性和合理性,提升了用户体验。

本发明另一实施例还提供一种用户访问方法,请参考图2,该用户访问方法包括:

S201、当前终端设备发起服务请求消息;

S202、网关设备根据服务请求消息,查找是否存在对应的路由配置;若是,转到S203;若否,转到S210;

S203、网关设备查找缓存列表;

S204、判断是否存在缓存列表;若是,转到S206;若否,转到S205;

S205、创建缓存列表,设置缓存时间;

S206、判断当前服务请求消息对应的token是否在缓存列表内;若是,转到S208;若否,转到S207;

S207、判断当前缓存列表内的token数是否大于等于最大访问用户数;若是,转到S209;若否,转到S208;

S208、路由到指定服务,之后再向当前终端设备返回服务响应结果;

S209、返回429请求过多响应;

S210、返回404响应。

基于同样的发明构思,本发明实施例还提供一种网络设备,请参考图3,该网络设备包括处理器31、存储器32及通信总线33;

通信总线33用于实现处理器31和存储器32之间的连接通信;

处理器31用于执行存储器32中存储的一个或者多个计算机程序,以实现本发明各实施例所述的用户访问方法的步骤,这里不再赘述。

本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、计算机程序模块或其他数据)的任何方法或技术中实施的易失性或非易失性、可移除或不可移除的介质。计算机可读存储介质包括但不限于RAM(Random Access Memory,随机存取存储器),ROM(Read-Only Memory,只读存储器),EEPROM(Electrically Erasable Programmable read only memory,带电可擦可编程只读存储器)、闪存或其他存储器技术、CD-ROM(Compact Disc Read-Only Memory,光盘只读存储器),数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。

本实施例中的计算机可读存储介质可用于存储一个或者多个计算机程序,其存储的一个或者多个计算机程序可被处理器执行,以实现上述用户访问方法的至少一个步骤。

本实施例还提供了一种计算机程序(或称计算机软件),该计算机程序可以分布在计算机可读介质上,由可计算装置来执行,以实现上述用户访问方法的至少一个步骤;并且在某些情况下,可以采用不同于上述实施例所描述的顺序执行所示出或描述的至少一个步骤。

本实施例还提供了一种计算机程序产品,包括计算机可读装置,该计算机可读装置上存储有如上所示的计算机程序。本实施例中该计算机可读装置可包括如上所示的计算机可读存储介质。

可见,本领域的技术人员应该明白,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件(可以用计算装置可执行的计算机程序代码来实现)、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。

此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、计算机程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。所以,本发明不限制于任何特定的硬件和软件结合。

应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

技术分类

06120115849729