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

一种流量控制方法、装置、计算机设备

文献发布时间:2024-01-17 01:17:49


一种流量控制方法、装置、计算机设备

技术领域

本申请涉及互联网技术领域,特别是涉及一种流量控制方法、装置、计算机设备、存储介质和计算机程序产品。

背景技术

随着科技的发展,互联网应用越来越普遍,当服务器被用户大量访问时,为了保障服务器运行的稳定性,通过限流的方式进行控制以防止服务器因大量访问流量导致服务质量下降、延时等问题。

相关技术中,可以设置限流条件,在达到限流条件后,拒绝所有访问请求。现有的降级策略无法精细化的进行流量的控制。

发明内容

基于此,有必要针对上述技术问题,提供了一种流量控制方法、装置、计算机设备、存储介质和计算机程序产品,可以制定用户等级列表、接口等级列表,当业务处理请求的资源使用量大于限流阈值时,可以根据制定的列表确定是否执行业务处理请求。

第一方面,本申请提供了一种流量控制方法。所述方法包括:

获取包括认证令牌的业务处理请求,其中,所述认证令牌包括用户信息、历史访问次数中的至少一种,根据所述历史访问次数,将所述认证令牌加入预设的用户等级列表;

解析所述业务处理请求,得到微服务节点的服务接口;

当所述业务处理请求的资源使用量大于第一限流阈值时,接收所述服务接口返回的用户等级列表、接口等级列表至本地缓存,所述接口等级列表根据所有预设的微服务节点中每个服务接口的资源使用数据参数确定;

若所述业务处理请求中的用户信息与用户等级列表相匹配,服务接口与接口等级列表相匹配,执行所述业务处理请求。

在其中一个实施例中,所述方法还包括:

当所述业务处理请求的资源使用量大于第二限流阈值时,所述服务接口拦截业务处理请求,返回限流提示信息至客户端。

在其中一个实施例中,所述接口等级列表的获得方式包括:

根据所述微服务节点、服务接口的资源使用参数,计算服务接口的接口权重;

按照所述接口权重对服务接口进行排序,得到所述接口等级列表。

在其中一个实施例中,所述方法还包括:

根据所述认证令牌获取用户信息,通过所述用户信息获取用户的访问权限信息,其中,所述访问权限信息包括用户能够访问的接口地址列表;

若所述业务处理请求中的服务接口不在所述接口地址列表中,所述服务接口拦截所述业务处理请求。

在其中一个实施例中,所述第一限流阈值、所述第二限流阈值根据所述服务节点的资源使用参数确定。

第二方面,本申请还提供了一种流量控制装置,所述装置包括:

生成模块,用于获取包括认证令牌的业务处理请求,其中,所述认证令牌包括用户信息、历史访问次数中的至少一种,根据所述历史访问次数,将所述认证令牌加入预设的用户等级列表;

解析模块,用于解析所述业务处理请求,得到微服务节点的服务接口;

判断模块,用于当所述业务处理请求的资源使用量大于第一限流阈值时,接收所述服务接口返回的用户等级列表、接口等级列表至本地缓存,所述接口等级列表根据所有预设的微服务节点中每个服务接口的资源使用数据参数确定;

匹配模块,用于若所述业务处理请求中的用户信息与用户等级列表相匹配,服务接口与接口等级列表相匹配,执行所述业务处理请求。

在其中一个实施例中,所述装置还包括:

当所述业务处理请求的资源使用量大于第二限流阈值时,所述服务接口拦截业务处理请求,返回限流提示信息至客户端。

在其中一个实施例中,所述接口等级列表的获得方式包括:

根据所述微服务节点、服务接口的资源使用参数,计算服务接口的接口权重;

按照所述接口权重对服务接口进行排序,得到所述接口等级列表。

在其中一个实施例中,所述装置还包括:

根据所述认证令牌获取用户信息,通过所述用户信息获取用户的访问权限信息,其中,所述访问权限信息包括用户能够访问的接口地址列表;

若所述业务处理请求中的服务接口不在所述接口地址列表中,所述服务接口拦截所述业务处理请求。

在其中一个实施例中,所述第一限流阈值、所述第二限流阈值根据所述服务节点的资源使用参数确定。

第三方面,本公开还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现流量控制方法的步骤。

第四方面,本公开还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现流量控制方法的步骤。

第五方面,本公开还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现流量控制方法的步骤。

上述流量控制方法,至少包括以下有益效果:

本公开提供的实施例方案,可以根据认证令牌的信息制定用户等级列表,根据服务接口的资源使用数据参数制定接口等级列表,在接收到业务处理请求后,若资源使用量大于第一限流阈值,可以根据用户等级列表、接口等级列表确定是否执行业务处理请求。在达到限流的初始阈值后,可以保证优先级高的服务接口以及用户优先执行业务请求,将服务接口的最大限流阈值作为第二限流阈值,在达到限流的最大阈值后,限制所有业务处理请求,提高流量控制的精确性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

为了更清楚地说明本公开实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为一个实施例中流量控制方法的应用环境图;

图2为一个实施例中流量控制方法的流程示意图;

图3为一个实施例中流量控制方法的流程示意图;

图4为一个实施例中流量控制装置的结构框图;

图5为一个实施例中流量控制装置的结构框图;

图6为一个实施例中计算机设备的内部结构图;

图7为一个实施例中一种服务器的内部结构图。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

本公开实施例提供一种流量控制方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在本公开的一些实施例中,如图2所示,提供了一种流量控制方法,以该方法应用于图1中的服务器对业务处理请求进行处理为例进行说明。可以理解的是,该方法可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。具体的一个实施例中,所述方法可以包括以下步骤:

S202:获取包括认证令牌的业务处理请求,其中,所述认证令牌包括用户信息、历史访问次数中的至少一种,根据所述历史访问次数,将所述认证令牌加入预设的用户等级列表。

在服务器执行客户端发送的业务处理请求前,服务器可以先进行用户信息的验证,在用户信息验证通过后,执行业务处理请求。一般,客户端会向服务端发送登录请求,服务器接收到客户端发送的登录请求后验证用户信息是否正确,用户信息可以包括用户的身份标识、密钥、名称等,若验证正确则生成认证令牌并返回至客户端。可以将认证令牌保存至缓存中,缓存中包括最新的用户信息,用户可以多次发送业务处理请求,用户信息、历史访问次数可以记录在认证令牌中。可以根据历史访问次数,将所述认证令牌加入预设的用户等级列表。

S204:解析所述业务处理请求,得到微服务节点的服务接口。

微服务架构中可以包括多个微服务节点,每一个微服务节点对应一个子业务模块,微服务节点可以集成有至少一个服务接口。解析业务处理请求,找到业务处理请求对应的子业务模块,即微服务节点,通过微服务节点的服务接口执行业务处理请求。

S206:当所述业务处理请求的资源使用量大于第一限流阈值时,接收所述服务接口返回的用户等级列表、接口等级列表至本地缓存,所述接口等级列表根据所有预设的微服务节点中每个服务接口的资源使用数据参数确定。

服务接口的资源使用数据参数可以指反映服务接口的资源使用情况的参数,可以包括但不限于以下数值,单位时间中央处理器的平均使用时间、单位时间内存使用大小的平均值、单位时间网络带宽消耗的平均值。资源使用数据参数也可以指反映服务接口的能力情况的参数,可以包括但不限于以下数值,单位时间平均处理耗时、接口基准响应时间、单位时间被调用次数。

可以根据微服务节点的每个服务接口的资源使用量计算每个服务接口的限流阈值,根据每个服务接口的限流阈值制定接口等级列表。确定业务处理请求的资源使用量,当业务处理请求的资源使用量大于第一限流阈值时,接收所述服务接口返回的用户等级列表、接口等级列表至本地缓存,用于判断是否执行业务处理请求。

S208:若所述业务处理请求中的用户信息与用户等级列表相匹配,服务接口与接口等级列表相匹配,执行所述业务处理请求。

用户等级列表中的用户信息随着用户的访问次数变化,若业务处理请求中的用户信息在用户等级列表中的优先级较高,并且接口等级列表中包含业务处理请求的服务接口,可以执行业务处理请求。可以保证在资源使用量达到第一限流阈值时,确保大部分已经正在使用的用户能够继续访问系统。

上述流量控制方法中,可以根据认证令牌的信息制定用户等级列表,根据服务接口的资源使用数据参数制定接口等级列表,在接收到业务处理请求后,若资源使用量大于第一限流阈值,可以根据用户等级列表、接口等级列表确定是否执行业务处理请求。在达到限流的初始阈值后,可以保证优先级高的服务接口以及用户优先执行业务请求,提高了流量控制的灵活性。

在本公开的一些实施例中,图3为一个实施例中流量控制方法的流程示意图,所述方法还包括:

S302:当所述业务处理请求的资源使用量大于第二限流阈值时,所述服务接口拦截业务处理请求,返回限流提示信息至客户端。

可以根据每个服务接口的单位时间平均处理耗时、接口基准响应时间和单位时间被调用次数计算每个服务接口的最大限流阈值,可以将所有服务接口中最大的限流阈值作为第二限流阈值。当业务处理请求的资源使用量大于第二限流阈值时,直接返回服务器限流的提示信息。

在达到第一限流阈值时,可以根据用户等级列表、接口等级列表混合判断的方式进行限流,当达到第二限流阈值时,可以采用无差别限流方式,拒绝所有业务处理请求。可以保证优先级高的业务接口、用户使用资源,提高流量控制的精确性。

在本公开的一些实施例中,所述接口等级列表的获得方式包括:

根据所述微服务节点、服务接口的资源使用参数,计算服务接口的接口权重;

按照所述接口权重对服务接口进行排序,得到所述接口等级列表。

微服务架构中包括多个微服务节点,每一个微服务节点对应一个子业务模块,微服务节点可以集成有至少一个服务接口。分别根据微服务节点的服务级别和微服务节点中每个服务接口的接口级别,计算每个服务接口的接口权重。微服务节点的服务级别可以用于反映微服务节点的重要程度,服务接口的接口级别可以用于反映服务接口的重要程度。接口等级列表中的服务接口按照优先级先后排列。

在本公开的一些实施例中,所述方法还包括:

根据所述认证令牌获取用户信息,通过所述用户信息获取用户的访问权限信息,其中,所述访问权限信息包括用户能够访问的接口地址列表;

若所述业务处理请求中的服务接口不在所述接口地址列表中,所述服务接口拦截所述业务处理请求。

用户可以发起业务处理请求,调用服务接口执行任务,接口可以根据业务处理请求中认证令牌的信息获取用户的访问权限信息,访问权限信息中可以包括用户能够访问的接口地址列表,若接口地址列表中不包括业务处理请求中的服务接口地址,服务接口无法执行业务处理请求,可以返回错误信息至客户端提醒用户。

在本公开的一些实施例中,所述第一限流阈值、所述第二限流阈值根据所述服务节点的资源使用参数确定。

可以获取微服务节点中每个服务接口的资源使用数据参数,计算每个服务接口的限流阈值,可以根据每个服务接口的限流阈值、限流需求制定第一限流阈值。可以将所有服务接口中最大的限流阈值作为第二限流阈值,若资源使用量达到第二限流阈值,服务接口拒绝执行业务处理请求。

应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

基于同样的发明构思,本公开实施例还提供了一种用于实现上述所涉及的针对流量控制方法的流量控制装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的流量控制装置实施例中的具体限定可以参见上文中对于流量控制方法的限定,在此不再赘述。

所述装置可以包括使用了本说明书实施例所述方法的系统(包括分布式系统)、软件(应用)、模块、组件、服务器、客户端等并结合必要的实施硬件的装置。基于同一创新构思,本公开实施例提供的一个或多个实施例中的装置如下面的实施例所述。由于装置解决问题的实现方案与方法相似,因此本说明书实施例具体的装置的实施可以参见前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

在一个实施例中,如图4所示,提供了一种流量控制装置400,所述装置可以为前述服务器,或者集成于所述服务器的模块、组件、器件、单元等。该装置400可以包括:

生成模块402,用于获取包括认证令牌的业务处理请求,其中,所述认证令牌包括用户信息、历史访问次数中的至少一种,根据所述历史访问次数,将所述认证令牌加入预设的用户等级列表;

解析模块404,用于解析所述业务处理请求,得到微服务节点的服务接口;

判断模块406,用于当所述业务处理请求的资源使用量大于第一限流阈值时,接收所述服务接口返回的用户等级列表、接口等级列表至本地缓存,所述接口等级列表根据所有预设的微服务节点中每个服务接口的资源使用数据参数确定;

匹配模块408,用于若所述业务处理请求中的用户信息与用户等级列表相匹配,服务接口与接口等级列表相匹配,执行所述业务处理请求。

在一个实施例中,图5为一个实施例中流量控制装置的结构框图,所述装置还包括:

拦截模块502,用于当所述业务处理请求的资源使用量大于第二限流阈值时,所述服务接口拦截业务处理请求,返回限流提示信息至客户端。

在一个实施例中,所述接口等级列表的获得方式包括:

根据所述微服务节点、服务接口的资源使用参数,计算服务接口的接口权重;

按照所述接口权重对服务接口进行排序,得到所述接口等级列表。

在一个实施例中,所述装置还包括:

根据所述认证令牌获取用户信息,通过所述用户信息获取用户的访问权限信息,其中,所述访问权限信息包括用户能够访问的接口地址列表;

若所述业务处理请求中的服务接口不在所述接口地址列表中,所述服务接口拦截所述业务处理请求。

在一个实施例中,所述第一限流阈值、所述第二限流阈值根据所述服务节点的资源使用参数确定。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

上述针对流量控制装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储业务处理请求。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种流量控制方法。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现流量控制方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图6、图7中示出的结构,仅仅是与本公开方案相关的部分结构的框图,并不构成对本公开方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现本公开任一实施例所述的方法。

在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本公开任一实施例所述的方法。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本公开所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本公开所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本公开所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本公开的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本公开专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本公开构思的前提下,还可以做出若干变形和改进,这些都属于本公开的保护范围。因此,本公开的保护范围应以所附权利要求为准。

相关技术
  • 一种流量控制方法、装置及车载设备
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 一种灰度版本页面访问方法、装置、计算机设备及计算机存储介质
  • 一种检测方法、装置、计算机可读存储介质和计算机设备
  • 一种液位检测装置和包含其的设备以及液位检测方法、电子设备及计算机可读存储介质
  • 流量控制方法和装置、计算机设备、计算机可读存储介质
  • 流量控制方法和装置、计算机设备、计算机可读存储介质
技术分类

06120116115556