CN111683133B - 一种基于微服务架构的业务限流方法及相关装置 - Google Patents
一种基于微服务架构的业务限流方法及相关装置 Download PDFInfo
- Publication number
- CN111683133B CN111683133B CN202010499428.0A CN202010499428A CN111683133B CN 111683133 B CN111683133 B CN 111683133B CN 202010499428 A CN202010499428 A CN 202010499428A CN 111683133 B CN111683133 B CN 111683133B
- Authority
- CN
- China
- Prior art keywords
- value
- load
- gateway node
- service information
- service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
Abstract
本发明公开了一种基于微服务架构的业务限流方法,应用于网关节点,包括获取业务信息;根据网关节点的负载值确定业务信息进入网关节点的第一概率值;根据第一概率值确定业务信息是否进入网关节点;当业务信息进入网关节点之后,根据业务信息对应的目标集群的负载值确定业务信息发送至目标集群的第二概率值;根据第二概率值确定业务信息是否发送至目标集群。通过第一概率值来对想要进入网关节点的业务信息进行第一次过滤,通过参考目标集群负载值的第二概率值来对需要向子服务节点发送的业务信息进行第二次过滤,可以保证网关节点具有良好的流控效果以及较高的流控效率。本发明还提供了一种装置,设备及存储介质,同样具有上述有益效果。
Description
技术领域
本发明涉及微服务技术领域,特别是涉及一种基于微服务架构的业务限流方法,一种基于微服务架构的业务限流装置,一种基于微服务架构的业务限流设备以及一种计算机可读存储介质。
背景技术
随着科技的进步以及社会的发展,微服务系统在人们日常生活中的应用越来越广泛。微服务是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为数十个的支持微服务。一个微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。
在现阶段,通常会使用多个子服务节点构成具有特定功能的集群,例如实现用户管理功能的集群、用于实现订单服务的集群、用于实现支付服务功能的集群等等。上述集群通常不对应一个实体结构,而是一个逻辑概念。在当下微服务体系架构的软件项目中,网关是不可或缺的一个重要组成部分,在正常系统运行中总会出现网关自身或系统子服务因流量峰值过高导致系统过载,进而引起服务异常。在现有技术中,通常使用的网关限流方案,是简单以系统单位时间处理的消息量作为流量控制依据。再一步的方案是通过识别消息请求中的用户信息、请求地址、服务接口等信息作为流量过滤条件。此类方案配置复杂,需要提前计算好系统可以承载的消息量,无法根据系统实际负载情况进行动态的流控判断,流控效果欠佳;同时因为对消息过多解析,导致流控本身消耗过多资源,效率低下。
所以如何提供一种流控效果好,效率高的业务限流方法是本领域技术人员急需解决的问题。
发明内容
本发明的目的是提供一种基于微服务架构的业务限流方法,流控效果好,流控效率高;本发明的另一目的在于提供一种基于微服务架构的业务限流装置,一种基于微服务架构的业务限流设备以及一种计算机可读存储介质,流控效果好,流控效率高。
为解决上述技术问题,本发明提供一种基于微服务架构的业务限流方法,应用于网关节点,包括:
获取业务信息;
根据所述网关节点的负载值确定所述业务信息进入所述网关节点的第一概率值;
根据所述第一概率值确定所述业务信息是否进入所述网关节点;
当所述业务信息进入所述网关节点之后,根据所述业务信息对应的目标集群的负载值确定所述业务信息发送至所述目标集群的第二概率值;
根据所述第二概率值确定所述业务信息是否发送至所述目标集群;
当确定将所述业务信息发送至所述目标集群时,将所述业务信息分发至所述目标集群。
可选的,所述根据所述网关节点的负载值确定所述业务信息进入所述网关节点的第一概率值包括:
调用所述网关节点的负载等级;所述负载等级包括从低到高依次排列的多个负载等级;所述负载等级与对应节点的负载值相匹配;
根据所述网关节点的负载等级确定所述网关节点的第一限流值;所述第一限流值与所述负载等级成反比且一一对应;其中,最高负载等级对应最小限流值,最低负载等级对应最大限流值;
所述根据所述第一概率值确定所述业务信息是否进入所述网关节点包括:
根据所述第一限流值确定所述网关节点的第一分发区间;所述第一分发区间的起始数值为所述最小限流值,终止数值为所述第一限流值;
生成第一随机数;所述第一随机数取值区间的起始数值为所述最小限流值,终止数值为所述最大限流值;
当所述第一随机数落入所述第一分发区间时,确定所述业务信息进入所述网关节点。
可选的,在所述生成第一随机数之后,还包括:
当所述第一随机数未落入所述第一分发区间时,向客户端发送HTTP状态码429。
可选的,所述根据所述业务信息对应的目标集群的负载值确定所述业务信息发送至所述目标集群的第二概率值包括:
调用所述业务信息对应目标集群的负载等级;
根据所述目标集群的负载等级确定所述目标集群的第二限流值;所述第二限流值与所述负载等级成反比且一一对应;
所述根据所述第二概率值确定所述业务信息是否发送至所述目标集群包括:
根据所述第二限流值确定所述目标集群的第二分发区间;所述第二分发区间的起始数值为所述最小限流值,所述第二分发区间的终止数值为所述第二限流值;
生成第二随机数;所述第二随机数取值区间的起始数值为所述最小限流值,所述第二随机数取值区间的终止数值为所述最大限流值;
当所述第二随机数落入所述第二分发区间时,确定将所述业务信息发送至所述目标集群。
可选的,在所述生成第二随机数之后,还包括:
当所述第二随机数未落入所述第二分发区间时,向客户端发送HTTP状态码429。
可选的,在所述调用所述网关节点的负载等级之前,还包括:
获取所述网关节点的当前负载值和负载等级;
当所述当前负载值大于所述负载等级所对应的负载上限值时,将所述网关节点的负载等级上升为对应所述当前负载值的负载等级;
当所述当前负载值小于所述负载等级所对应的负载下限值时,将所述网关节点的负载等级下降一级。
可选的,相邻两个所述负载等级之间,低负载等级的负载上限值大于高负载等级的负载下限值。
本发明还提供了一种基于微服务架构的业务限流装置,应用于网关节点,包括:
业务获取模块:用于获取业务信息;
第一概率值计算模块:用于根据所述网关节点的负载值确定所述业务信息进入所述网关节点的第一概率值;
第一限流模块:用于根据所述第一概率值确定所述业务信息是否进入所述网关节点;
第二概率值计算模块:用于当所述业务信息进入所述网关节点之后,根据所述业务信息对应的目标集群的负载值确定所述业务信息发送至所述目标集群的第二概率值;
第二限流模块:用于根据所述第二概率值确定所述业务信息是否发送至所述目标集群;
发送模块:用于当确定将所述业务信息发送至所述目标集群时,将所述业务信息分发至所述目标集群。
本发明还提供了一种基于微服务架构的业务限流设备,应用于网关节点,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述任意一项所述基于微服务架构的业务限流方法的步骤。
本发明还提供了一种计算机可读存储介质,应用于网关节点,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述一项所述基于微服务架构的业务限流方法的步骤。
本发明所提供的一种基于微服务架构的业务限流方法,应用于网关节点,包括获取业务信息;根据网关节点的负载值确定业务信息进入网关节点的第一概率值;根据第一概率值确定业务信息是否进入网关节点;当业务信息进入网关节点之后,根据业务信息对应的目标集群的负载值确定业务信息发送至目标集群的第二概率值;根据第二概率值确定业务信息是否发送至目标集群;当确定将业务信息发送至目标集群时,将业务信息分发至目标集群。
通过参考网关节点自身负载值的第一概率值来对想要进入网关节点的业务信息进行第一次过滤,可以保证网关节点自身不会因为业务过多而出现过载情况的发生;在当业务信息进入网关节点之后,会通过参考目标集群负载值的第二概率值来对需要向子服务节点发送的业务信息进行第二次过滤,以保证目标集群以及子服务节点不会因为业务过多而出现过载情况的发生。通过两层流控可以保证网关节点具有良好的流控效果以及较高的流控效率。
本发明还提供了一种基于微服务架构的业务限流装置,一种基于微服务架构的业务限流设备以及一种计算机可读存储介质,同样具有上述有益效果,在此不再进行赘述。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所提供的一种基于微服务架构的业务限流方法的流程图;
图2为本发明实施例所提供的一种具体的基于微服务架构的业务限流方法的流程图;
图3为本发明实施例所提供的另一种具体的基于微服务架构的业务限流方法的流程图;
图4为本发明实施例所提供的一种基于微服务架构的业务限流装置的结构框图;
图5为本发明实施例所提供的一种基于微服务架构的业务限流设备的结构框图。
具体实施方式
本发明的核心是提供一种基于微服务架构的业务限流方法。在现有技术中,通常使用的网关限流方案,是简单以系统单位时间处理的消息量作为流量控制依据。再一步的方案是通过识别消息请求中的用户信息、请求地址、服务接口等信息作为流量过滤条件。此类方案配置复杂,需要提前计算好系统可以承载的消息量,无法根据系统实际负载情况进行动态的流控判断,流控效果欠佳;同时因为对消息过多解析,导致流控本身消耗过多资源,效率低下。
而本发明所提供的一种基于微服务架构的业务限流方法,应用于网关节点,包括获取业务信息;根据网关节点的负载值确定业务信息进入网关节点的第一概率值;根据第一概率值确定业务信息是否进入网关节点;当业务信息进入网关节点之后,根据业务信息对应的目标集群的负载值确定业务信息发送至目标集群的第二概率值;根据第二概率值确定业务信息是否发送至目标集群;当确定将业务信息发送至目标集群时,将业务信息分发至目标集群。
通过参考网关节点自身负载值的第一概率值来对想要进入网关节点的业务信息进行第一次过滤,可以保证网关节点自身不会因为业务过多而出现过载情况的发生;在当业务信息进入网关节点之后,会通过参考目标集群负载值的第二概率值来对需要向子服务节点发送的业务信息进行第二次过滤,以保证目标集群以及子服务节点不会因为业务过多而出现过载情况的发生。通过两层流控可以保证网关节点具有良好的流控效果以及较高的流控效率。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例所提供的一种基于微服务架构的业务限流方法的流程图。
参见图1,在本发明实施例中,基于微服务架构的业务限流方法,应用于网关节点,包括:
S101:获取业务信息。
在本步骤中,网关节点会获取外界客户端所发送的业务信息,该业务信息通常对应于微服务系统中某一个特定功能目标集群,需要通过目标集群中的子服务节点去根据该业务信息执行对应的业务。有关业务信息的具体类型在本发明实施例中不做具体限定,视具体情况而定。在本发明实施例中,业务信息中通常具有对应的目标集群的标识信息,以便网关节点识别出该业务信息所对应的目标集群。
S102:根据网关节点的负载值确定业务信息进入网关节点的第一概率值。
在本步骤中,会根据网关节点自身的负载值,来确定业务信息进入网关节点的第一概率值。有关第一概率值的具体计算方法将在下述发明实施例中做详细介绍,在此不再进行赘述。在本步骤中,当网关节点的负载较高时,并不是直接禁止外部的业务信息进入网关节点,而是计算第一概率值,然后在后续步骤中根据该第一概率值随机的将业务信息放入网关节点。
S103:根据第一概率值确定业务信息是否进入网关节点。
在本步骤中,网关节点会根据第一概率值来确定业务信息是否可以进入网关节点。有关根据第一概率值确定业务信息是否可以进入网关节点的具体内容将在下述发明实施例中做详细介绍,在此不再进行赘述。需要说明的是,在本发明实施例中,当网关节点根据第一概率值没有允许该业务信息进入网关节点之后,通常会向客户端发送HTTP状态码429以显示当前子服务系统处于过载状态。
S104:当业务信息进入网关节点之后,根据业务信息对应的目标集群的负载值确定业务信息发送至目标集群的第二概率值。
在本步骤中,网关节点会根据业务信息对应的目标集群的负载值,来确定业务信息进入目标集群的第二概率值。有关第二概率值的具体计算方法将在下述发明实施例中做详细介绍,在此不再进行赘述。在本步骤中,当目标集群的负载较高时,并不是直接禁止外部的业务信息进入目标集群,而是计算第二概率值,然后在后续步骤中根据该第二概率值随机的将业务信息分法至目标集群。
S105:根据第二概率值确定业务信息是否发送至目标集群。
在本步骤中,网关节点会根据第二概率值来确定业务信息是否可以进入目标集群。有关根据第二概率值确定业务信息是否可以进入目标集群的具体内容将在下述发明实施例中做详细介绍,在此不再进行赘述。需要说明的是,在本发明实施例中,当网关节点根据第二概率值没有允许该业务信息进入目标集群之后,通常会向客户端发送HTTP状态码429以显示当前子服务系统处于过载状态。
S106:当确定将业务信息发送至目标集群时,将业务信息分发至目标集群。
在本步骤中,当网关节点根据第一概率值以及第二概率值的筛选确定可以将业务信息发送至目标集群时,会将业务信息分发至目标集群,以通过目标集群完成该业务信息所对应的业务。
本发明实施例所提供的一种基于微服务架构的业务限流方法,应用于网关节点,包括获取业务信息;根据网关节点的负载值确定业务信息进入网关节点的第一概率值;根据第一概率值确定业务信息是否进入网关节点;当业务信息进入网关节点之后,根据业务信息对应的目标集群的负载值确定业务信息发送至目标集群的第二概率值;根据第二概率值确定业务信息是否发送至目标集群;当确定将业务信息发送至目标集群时,将业务信息分发至目标集群。
通过参考网关节点自身负载值的第一概率值来对想要进入网关节点的业务信息进行第一次过滤,可以保证网关节点自身不会因为业务过多而出现过载情况的发生;在当业务信息进入网关节点之后,会通过参考目标集群负载值的第二概率值来对需要向子服务节点发送的业务信息进行第二次过滤,以保证目标集群以及子服务节点不会因为业务过多而出现过载情况的发生。通过两层流控可以保证网关节点具有良好的流控效果以及较高的流控效率。
有关本发明所提供的一种基于微服务架构的业务限流方法的具体内容将在下述发明实施例中做详细介绍。
请参考图2,图2为本发明实施例所提供的一种具体的基于微服务架构的业务限流方法的流程图。
参见图2,在本发明实施例中,基于微服务架构的业务限流方法,应用于网关节点,包括:
S201:获取业务信息。
本步骤与上述发明实施例中S101基本一致,详细内容请参考上述发明实施例,在此不再进行赘述。
S202:调用网关节点的负载等级。
在本发明实施例中,所述负载等级包括从低到高依次排列的多个负载等级;所述负载等级与对应节点的负载值相匹配。上述负载等级对应节点,包括网关节点和子服务节点当前的负载值但是并不等同于各个节点当前的负载值。通常情况下,节点的负载值越高,其对应的负载等级越高;负载值等级越低,其对应的负载等级越低,节点负载值的变化会引起负载等级的变动。
但是需要强调的是,由于通常情况下,节点的负载值,包括网关节点自身的负载值通常是由网关节点定时轮询获取,而业务信息的分发具有随机性,所以在进行业务分发时无法根据节点最准确的当前负载值进行分发;而在本发明实施例中,具体会在节点的负载值变化时,调整在节点对应的负载等级,具体根据负载等级进行分发,通过负载等级实现对节点负载适当的模糊以及概括,可以有效减少网关节点的计算量。有关负载等级具体的相关内容将在下述发明实施例中做详细介绍,在此不再进行赘述。
在本步骤中,网关节点首先会调用自身的负载等级,以便后续根据该网关节点的负载等级对业务信息进行过滤。
S203:根据网关节点的负载等级确定网关节点的第一限流值。
在本发明实施例中,所述第一限流值与所述负载等级成反比且一一对应;最高负载等级对应最小限流值,最低负载等级对应最大限流值。上述第一限流值即网关节点的剩余负载容量,网关节点的负载等级越高,意味着剩余负载容量越低,第一限流值也越低,反之亦然。上述负载等级与第一限流值之间的对应关系是预先设置的,第一限流值的高低直接反应了该网关节点具体还可以承载多少业务。在确定网关节点当前的第一限流值之后,具体会在下述步骤中根据该第一限流值确定业务是否可以进网关节点。
S204:根据第一限流值确定网关节点的第一分发区间。
在本发明实施例中,所述第一分发区间的起始数值为所述最小限流值,终止数值为所述第一限流值。
在本步骤中,会建立与第一限流值相对应的第一分发区间,上述第一分发区间的起始数值通常为0,相应的,上述第一分发区间的长度通常等于第一限流值。当然,在本发明实施例中对于第一分发区间的起始数值并不做具体限定,视具体情况而定。上述第一分发区间通常为左闭右开区间,当然在本发明实施例中对于第一分发区间的具体类型并不做具体限定,视具体情况而定。
S205:生成第一随机数。
在本发明实施例中,所述第一随机数取值区间的起始数值为所述最小限流值,终止数值为所述最大限流值。
在本步骤中,在最小限流值于最大限流值之间生成的第一随机数可能会落入上述第一分发区间内,也可能会落在第一分发区间外。有关生成第一随机数的具体步骤可以参考现有技术,在此不再进行赘述。
S206:当第一随机数落入第一分发区间时,确定业务信息进入网关节点。
在本步骤中,当第一随机数落入第一分发区间时,意味着本次业务信息通过了上述第一概率值的筛选,相应的在本步骤中,会确定该业务信息可以进入网关节点。具体的,当所述第一随机数未落入所述第一分发区间时,意味着本次业务信息没有通过第一概率值的筛选,网关节点需要向客户端发送HTTP状态码429。
S207:调用业务信息对应目标集群的负载等级。
在本步骤中,具体会调用目标集群整体的负载等级,而目标集群整体的负载等级通常是统筹目标集群内各个子服务节点的负载值或负载等级所得到的综合性的负载等级。有关目标集群负载等级具体的计算方法可以参考现有技术,例如取各个子服务节点负载值的平均值,或加权平均值等方法均可,在本发明实施例中不做具体限定。
在本步骤中,网关节点会调用目标集群的负载等级,以便后续根据该目标集群的负载等级对业务信息进行过滤。
S208:根据目标集群的负载等级确定目标集群的第二限流值。
在本发明实施例中,所述第二限流值与所述负载等级成反比且一一对应。相应的,目标集群节点的最高负载等级对应第二限流值中的最小限流值,目标集群节点的最低负载等级对应第二限流值中的最大限流值。上述第二限流值即目标集群的剩余负载容量,目标集群的负载等级越高,意味着剩余负载容量越低,第二限流值也越低,反之亦然。上述负载等级与第二限流值之间的对应关系是预先设置的,第二限流值的高低直接反应了目标集群具体还可以承载多少业务。在确定目标集群当前的第二限流值之后,具体会在下述步骤中根据该第二限流值确定业务是否可以进目标集群。
S209:根据第二限流值确定目标集群的第二分发区间。
在本发明实施例中,所述第二分发区间的起始数值为所述最小限流值,所述第二分发区间的终止数值为所述第二限流值。
在本步骤中,会建立与第二限流值相对应的第二分发区间,上述第二分发区间的起始数值通常为0,相应的,上述第二分发区间的长度通常等于第二限流值。当然,在本发明实施例中对于第二分发区间的起始数值并不做具体限定,视具体情况而定。上述第二分发区间通常为左闭右开区间,当然在本发明实施例中对于第二分发区间的具体类型并不做具体限定,视具体情况而定。
S210:生成第二随机数。
在本发明实施例中,所述第二随机数取值区间的起始数值为所述最小限流值,所述第二随机数取值区间的终止数值为所述最大限流值。
本步骤与上述S205相类似,在最小限流值于最大限流值之间生成的第二随机数可能会落入上述第二分发区间内,也可能会落在第二分发区间外。有关生成第二随机数的具体步骤可以参考现有技术,在此不再进行赘述。
S211:当第二随机数落入第二分发区间时,确定将业务信息发送至目标集群。
在本步骤中,当第二随机数落入第二分发区间时,意味着本次业务信息通过了上述第二概率值的筛选,相应的在本步骤中,会确定该业务信息可以进入目标集群。具体的,当所述第二随机数未落入所述第二分发区间时,意味着本次业务信息没有通过第二概率值的筛选,网关节点需要向客户端发送HTTP状态码429。
S212:当确定将业务信息发送至目标集群时,将业务信息分发至目标集群。
本步骤与上述发明实施例中S106基本一致,详细内容请参考上述发明实施例,在此不再进行赘述。
本发明实施例所提供的一种基于微服务架构的业务限流方法,通过根据网关节点以及目标集群的负载等级确定其限流值,之后根据限流值生成分发区间,在生成随机数之后,根据随机数是否落入分发区间来对业务信息进行过滤,可以实现在考虑各个节点负载能力的前提下,随机的将业务放入网关节点以及发向目标集群,从而避免子服务系统受到大量流量的冲击。
有关本发明所提供的一种基于微服务架构的业务限流方法的具体内容将在下述发明实施例中做详细介绍。
请参考图3,图3为本发明实施例所提供的另一种具体的基于微服务架构的业务限流方法的流程图。
区别于上述发明实施例,本发明实施例是在上述发明实施例的基础上,进一步的介绍微服务系统中各个节点负载等级变迁的具体内容,其余内容已在上述发明实施例中做详细介绍,在此不再进行赘述。需要说明的是,本发明实施例所提供的方法流程可以与上述发明实施例中S201至S212并行的执行,但是S202在被执行时需要调用本发明实施例所调整的负载等级。
参见图3,在本发明实施例中,基于微服务架构的业务限流方法,应用于网关节点,包括:
S301:获取网关节点的当前负载值和负载等级。
在本步骤中,会获取网关节点的当前负载值和负载等级,以便在后续步骤中根据当前负载值对负载等级进行修改。
具体的,本步骤可以具体为:沿时间的先后顺序获取所述网关节点中最新的连续五个负载值;计算五个所述负载值的平均值作为所述当前负载值。即在本步骤中,具体会通过网关节点最新的连续五个负载值的平均值作为当前负载值,以便下述步骤中根据该当前负载值对网关节点的负载等级进行调整。
S302:当当前负载值大于负载等级所对应的负载上限值时,将网关节点的负载等级上升为对应当前负载值的负载等级。
在本发明实施例中,每一个负载等级对应一负载上限值和一负载下限值,而在本发明实施例中会设置多个负载等级,通常会设置从低到高的三个负载等级或四个负载等级。在本步骤中当处于某一负载等级的网关节点的当前负载值大于网关节点所属负载等级的负载上限值时,会向上调整网关节点的负载等级,具体会调整至对应当前负载值的负载等级。需要说明的是,在本步骤中调整负载等级时,该负载等级可以越级调整。例如,若网关节点处于最低的负载等级,但是获取到的当前负载值对应最高负载等级时,在本步骤中可以将网关节点对应的负载等级从最低直接调整至最高,而不用管中间间隔的多少负载等级,使得当网关节点的负载较高时,负载等级可以准确的反映出负载的真实情况。
S303:当当前负载值小于负载等级所对应的负载下限值时,将网关节点的负载等级下降一级。
在本步骤中当处于某一负载等级的网关节点的当前负载值小于网关节点所属负载等级的负载下限值时,会向下调整网关节点的负载等级,具体会向下调整一级负载等级,不可以越级调整。在本步骤中,当网关节点的当前负载值低于当前所属负载等级的负载下限值时,无论低多少,均只下降一个负载等级,以实现平滑削谷的效果,避免业务流量突变对微服务系统造成冲击。
需要说明的是,在本发明实施例中当微服务系统刚开始运行时,网关节点的初始负载等级通常为最低负载等级,而在之后每次获取到网关节点的当前负载值之后,即根据上述S302以及S303对网关节点的负载等级进行调整。
具体的,在本发明实施例中,相邻两个所述负载等级之间,低负载等级的负载上限值大于高负载等级的负载下限值。此时,可以避免网关节点的负载等级频繁跳变情况的发生。例如,若相邻两个负载等级之间,低负载等级的负载上限值小于高负载等级的负载下限值,当网关节点的当前负载值逐步调高时,会先大于低负载等级的负载上限值从而向上跳变,再经过高负载等级的负载下限值向下跳变,再由于大于低负载等级的负载上限值从而向上跳变。而当低负载等级的负载上限值大于高负载等级的负载下限值时,可以避免上述情况的发生。
具体的,在本发明实施例中,所述负载等级包括零级负载、一级负载、二级负载和三级负载;所述零级负载对应的第一限流值为100、所述一级负载对应的第一限流值为66、所述二级负载对应的第一限流值为33、所述三级负载对应的第一限流值为0;所述零级负载的负载上限值为70;所述一级负载的负载上限值为80,所述一级负载的负载下限值为65;所述二级负载的负载上限值为90,所述二级负载的负载下限值为75;所述三级负载的负载下限值为85。
在本发明实施例中,从低到高一共设置有四个负载等级,其分别为零级负载、一级负载、二级负载和三级负载。相应的,在本发明实施例中第一限流值以及第二限流值、负载值等其他数值均为百分制,第一限流值及其他数值最高为100,最低为0。在本发明实施例中,零级负载对应的第一限流值为100、一级负载对应的第一限流值为66、二级负载对应的第一限流值为33、三级负载对应的第一限流值为0。
相应的,在本发明实施例中,零级负载的负载上限值为70;一级负载的负载上限值为80,一级负载的负载下限值为65;二级负载的负载上限值为90,二级负载的负载下限值为75;三级负载的负载下限值为85。当然,在本发明实施例中每个负载等级所对应的负载上限值与负载下限值,在面对不同集群可以有不同的取值,视具体情况而定,在本发明实施例中不做具体限定。
需要说明的是,在本发明实施例中,若目标集群的负载等级调整方法是先计算出目标集群的综合负载值,再根据该综合负载值调整目标集群的负载等级,那么有关根据综合负载值调整目标集群负载等级的内容可以参考上述网关节点根据当前负载值调整负载等级的步骤;其中,目标集群的综合负载值相当于网关节点的当前负载值,目标集群的第二限流值可以参考上述第一限流值,其他内容均属于重复内容,在此不再进行赘述。
本发明实施例所提供的一种基于微服务架构的业务限流方法,在根据网关节点的当前负载值调整负载等级时,可以使网关节点应对流量突刺的影响,进行平滑削峰和削谷处理;并且可以避免网关节点负载等级发生频繁跳变。
下面对本发明实施例所提供的一种基于微服务架构的业务限流装置进行介绍,下文描述的业务限流装置与上文描述的业务限流方法可相互对应参照。
图4为本发明实施例所提供的一种基于微服务架构的业务限流装置的结构框图,参照图4,基于微服务架构的业务限流装置,应用于网关节点,可以包括:
业务获取模块100:用于获取业务信息。
第一概率值计算模块200:用于根据所述网关节点的负载值确定所述业务信息进入所述网关节点的第一概率值。
第一限流模块300:用于根据所述第一概率值确定所述业务信息是否进入所述网关节点。
第二概率值计算模块400:用于当所述业务信息进入所述网关节点之后,根据所述业务信息对应的目标集群的负载值确定所述业务信息发送至所述目标集群的第二概率值。
第二限流模块500:用于根据所述第二概率值确定所述业务信息是否发送至所述目标集群。
发送模块600:用于当确定将所述业务信息发送至所述目标集群时,将所述业务信息分发至所述目标集群。
作为优选的,在本发明实施例中,所述第一概率值计算模块200包括:
第一调用单元:用于调用所述网关节点的负载等级;所述负载等级包括从低到高依次排列的多个负载等级;所述负载等级与对应节点的负载值相匹配。
第一限流值单元:根据所述网关节点的负载等级确定所述网关节点的第一限流值;所述第一限流值与所述负载等级成反比且一一对应;其中,最高负载等级对应最小限流值,最低负载等级对应最大限流值。
作为优选的,在本发明实施例中,所述第一限流模块300包括:
第一分发区间单元:用于根据所述第一限流值确定所述网关节点的第一分发区间;所述第一分发区间的起始数值为所述最小限流值,终止数值为所述第一限流值。
第一随机数单元:用于生成第一随机数;所述第一随机数取值区间的起始数值为所述最小限流值,终止数值为所述最大限流值。
第一确定单元:用于当所述第一随机数落入所述第一分发区间时,确定所述业务信息进入所述网关节点。
作为优选的,在本发明实施例中,还包括:
第一报警单元:用于当所述第一随机数未落入所述第一分发区间时,向客户端发送HTTP状态码429。
作为优选的,在本发明实施例中,所述第二概率值计算模块400包括:
第二调用单元:用于调用所述业务信息对应目标集群的负载等级。
第二限流值单元:用于根据所述目标集群的负载等级确定所述目标集群的第二限流值;所述第二限流值与所述负载等级成反比且一一对应。
作为优选的,在本发明实施例中,所述第二限流模块500包括:
第二分发区间单元:用于根据所述第二限流值确定所述目标集群的第二分发区间;所述第二分发区间的起始数值为所述最小限流值,所述第二分发区间的终止数值为所述第二限流值。
第二随机数单元:用于生成第二随机数;所述第二随机数取值区间的起始数值为所述最小限流值,所述第二随机数取值区间的终止数值为所述最大限流值。
第二确定单元:用于当所述第二随机数落入所述第二分发区间时,确定将所述业务信息发送至所述目标集群。
作为优选的,在本发明实施例中,还包括:
第二报警单元:用于当所述第二随机数未落入所述第二分发区间时,向客户端发送HTTP状态码429。
作为优选的,在本发明实施例中,还包括:
负载获取模块:用于获取所述网关节点的当前负载值和负载等级。
上调模块:用于当所述当前负载值大于所述负载等级所对应的负载上限值时,将所述网关节点的负载等级上升为对应所述当前负载值的负载等级。
下调模块:用于当所述当前负载值小于所述负载等级所对应的负载下限值时,将所述网关节点的负载等级下降一级。
作为优选的,在本发明实施例中,相邻两个所述负载等级之间,低负载等级的负载上限值大于高负载等级的负载下限值。
本实施例的基于微服务架构的业务限流装置用于实现前述的基于微服务架构的业务限流方法,因此业务限流装置中的具体实施方式可见前文中业务限流方法的实施例部分,例如,业务获取模块100,第一概率值计算模块200,第一限流模块300,第二概率值计算模块400,第二限流模块500,发送模块600分别用于实现上述业务限流方法中步骤S101,S102,S103,S104,S105以及S106,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。
下面对本发明实施例提供的一种基于微服务架构的业务限流设备进行介绍,下文描述的业务限流设备与上文描述的业务限流方法以及业务限流装置可相互对应参照。
请参考图5,图5为本发明实施例所提供的一种基于微服务架构的业务限流设备的结构框图。
参照图5,该基于微服务架构的业务限流设备可以包括处理器11和存储器12,均应用于网关节点。
所述存储器12用于存储计算机程序;所述处理器11用于执行所述计算机程序时实现上述发明实施例中所述的基于微服务架构的业务限流方法。
本实施例的业务限流设备中处理器11用于安装上述发明实施例中所述的业务限流装置,同时处理器11与存储器12相结合可以实现上述任一发明实施例中所述的业务限流方法。因此基于微服务架构的业务限流设备中的具体实施方式可见前文中业务限流方法的实施例部分,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一发明实施例中所介绍的一种基于微服务架构的业务限流方法。其余内容可以参照现有技术,在此不再进行展开描述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种基于微服务架构的业务限流方法,一种基于微服务架构的业务限流装置,一种基于微服务架构的业务限流设备以及一种计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (9)
1.一种基于微服务架构的业务限流方法,其特征在于,应用于网关节点,包括:
获取业务信息;
根据所述网关节点的负载值确定所述业务信息进入所述网关节点的第一概率值;
根据所述第一概率值确定所述业务信息是否进入所述网关节点;
当所述业务信息进入所述网关节点之后,根据所述业务信息对应的目标集群的负载值确定所述业务信息发送至所述目标集群的第二概率值;
根据所述第二概率值确定所述业务信息是否发送至所述目标集群;
当确定将所述业务信息发送至所述目标集群时,将所述业务信息分发至所述目标集群;
所述根据所述网关节点的负载值确定所述业务信息进入所述网关节点的第一概率值包括:
调用所述网关节点的负载等级;所述负载等级包括从低到高依次排列的多个负载等级;所述负载等级与对应节点的负载值相匹配;
根据所述网关节点的负载等级确定所述网关节点的第一限流值;所述第一限流值与所述负载等级成反比且一一对应;其中,最高负载等级对应最小限流值,最低负载等级对应最大限流值;
所述根据所述第一概率值确定所述业务信息是否进入所述网关节点包括:
根据所述第一限流值确定所述网关节点的第一分发区间;所述第一分发区间的起始数值为所述最小限流值,终止数值为所述第一限流值;
生成第一随机数;所述第一随机数取值区间的起始数值为所述最小限流值,终止数值为所述最大限流值;
当所述第一随机数落入所述第一分发区间时,确定所述业务信息进入所述网关节点。
2.根据权利要求1所述的方法,其特征在于,在所述生成第一随机数之后,还包括:
当所述第一随机数未落入所述第一分发区间时,向客户端发送HTTP状态码429。
3.根据权利要求1所述的方法,其特征在于,所述根据所述业务信息对应的目标集群的负载值确定所述业务信息发送至所述目标集群的第二概率值包括:
调用所述业务信息对应目标集群的负载等级;
根据所述目标集群的负载等级确定所述目标集群的第二限流值;所述第二限流值与所述负载等级成反比且一一对应;
所述根据所述第二概率值确定所述业务信息是否发送至所述目标集群包括:
根据所述第二限流值确定所述目标集群的第二分发区间;所述第二分发区间的起始数值为所述最小限流值,所述第二分发区间的终止数值为所述第二限流值;
生成第二随机数;所述第二随机数取值区间的起始数值为所述最小限流值,所述第二随机数取值区间的终止数值为所述最大限流值;
当所述第二随机数落入所述第二分发区间时,确定将所述业务信息发送至所述目标集群。
4.根据权利要求3所述的方法,其特征在于,在所述生成第二随机数之后,还包括:
当所述第二随机数未落入所述第二分发区间时,向客户端发送HTTP状态码429。
5.根据权利要求1至4任一项权利要求所述的方法,其特征在于,在所述调用所述网关节点的负载等级之前,还包括:
获取所述网关节点的当前负载值和负载等级;
当所述当前负载值大于所述负载等级所对应的负载上限值时,将所述网关节点的负载等级上升为对应所述当前负载值的负载等级;
当所述当前负载值小于所述负载等级所对应的负载下限值时,将所述网关节点的负载等级下降一级。
6.根据权利要求5所述的方法,其特征在于,相邻两个所述负载等级之间,低负载等级的负载上限值大于高负载等级的负载下限值。
7.一种基于微服务架构的业务限流装置,其特征在于,应用于网关节点,包括:
业务获取模块:用于获取业务信息;
第一概率值计算模块:用于根据所述网关节点的负载值确定所述业务信息进入所述网关节点的第一概率值;
第一限流模块:用于根据所述第一概率值确定所述业务信息是否进入所述网关节点;
第二概率值计算模块:用于当所述业务信息进入所述网关节点之后,根据所述业务信息对应的目标集群的负载值确定所述业务信息发送至所述目标集群的第二概率值;
第二限流模块:用于根据所述第二概率值确定所述业务信息是否发送至所述目标集群;
发送模块:用于当确定将所述业务信息发送至所述目标集群时,将所述业务信息分发至所述目标集群;
所述第一概率值计算模块包括:
第一调用单元:用于调用所述网关节点的负载等级;所述负载等级包括从低到高依次排列的多个负载等级;所述负载等级与对应节点的负载值相匹配;
第一限流值单元:根据所述网关节点的负载等级确定所述网关节点的第一限流值;所述第一限流值与所述负载等级成反比且一一对应;其中,最高负载等级对应最小限流值,最低负载等级对应最大限流值;
所述第一限流模块包括:
第一分发区间单元:用于根据所述第一限流值确定所述网关节点的第一分发区间;所述第一分发区间的起始数值为所述最小限流值,终止数值为所述第一限流值。
第一随机数单元:用于生成第一随机数;所述第一随机数取值区间的起始数值为所述最小限流值,终止数值为所述最大限流值。
第一确定单元:用于当所述第一随机数落入所述第一分发区间时,确定所述业务信息进入所述网关节点。
8.一种基于微服务架构的业务限流设备,其特征在于,应用于网关节点,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任意一项所述基于微服务架构的业务限流方法的步骤。
9.一种计算机可读存储介质,其特征在于,应用于网关节点,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任意一项所述基于微服务架构的业务限流方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010499428.0A CN111683133B (zh) | 2020-06-04 | 2020-06-04 | 一种基于微服务架构的业务限流方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010499428.0A CN111683133B (zh) | 2020-06-04 | 2020-06-04 | 一种基于微服务架构的业务限流方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111683133A CN111683133A (zh) | 2020-09-18 |
CN111683133B true CN111683133B (zh) | 2023-04-28 |
Family
ID=72434953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010499428.0A Active CN111683133B (zh) | 2020-06-04 | 2020-06-04 | 一种基于微服务架构的业务限流方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111683133B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114363378B (zh) * | 2022-01-14 | 2022-10-11 | 上海交通大学 | 一种面向工业异构网络管理的微服务系统架构和管理方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103202002A (zh) * | 2010-09-08 | 2013-07-10 | 思杰系统有限公司 | 用于自负载平衡访问网关的系统和方法 |
CN109254845A (zh) * | 2018-07-27 | 2019-01-22 | 苏州橘猫网络科技有限公司 | 一种应用于分布式通信计算服务端的线性扩展实现方法 |
CN109672612A (zh) * | 2018-12-13 | 2019-04-23 | 中国电子科技集团公司电子科学研究院 | Api网关系统 |
CN109673232A (zh) * | 2018-11-02 | 2019-04-26 | 中国农业大学 | 一种基于微服务架构的智慧滴灌云服务管理系统 |
CN109981757A (zh) * | 2019-03-13 | 2019-07-05 | 青岛特锐德电气股份有限公司 | 一种面向小规模微服务架构的api网关负载均衡算法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10691514B2 (en) * | 2017-05-08 | 2020-06-23 | Datapipe, Inc. | System and method for integration, testing, deployment, orchestration, and management of applications |
US20190034210A1 (en) * | 2017-07-28 | 2019-01-31 | Kong Inc. | Systems and methods for distributed api gateways |
-
2020
- 2020-06-04 CN CN202010499428.0A patent/CN111683133B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103202002A (zh) * | 2010-09-08 | 2013-07-10 | 思杰系统有限公司 | 用于自负载平衡访问网关的系统和方法 |
CN109254845A (zh) * | 2018-07-27 | 2019-01-22 | 苏州橘猫网络科技有限公司 | 一种应用于分布式通信计算服务端的线性扩展实现方法 |
CN109673232A (zh) * | 2018-11-02 | 2019-04-26 | 中国农业大学 | 一种基于微服务架构的智慧滴灌云服务管理系统 |
CN109672612A (zh) * | 2018-12-13 | 2019-04-23 | 中国电子科技集团公司电子科学研究院 | Api网关系统 |
CN109981757A (zh) * | 2019-03-13 | 2019-07-05 | 青岛特锐德电气股份有限公司 | 一种面向小规模微服务架构的api网关负载均衡算法 |
Non-Patent Citations (3)
Title |
---|
"Dynamic and Distributed Load Balancing Scheme in Multi-gateway Based 6LoWPAN";Minkeun Ha等;《2014 IEEE International Conference on Internet of Things (iThings)》;20150316;全文 * |
"基于微服务架构的铁路科研协作平台研究与设计";陈亮等;《铁路计算机应用》;20200425;全文 * |
"基于微服务框架的地理空间数据服务平台设计与实现技术研究";罗杨;《中国优秀硕士学位论文全文数据库》;20200215;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111683133A (zh) | 2020-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109218355B (zh) | 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法 | |
CN110134513B (zh) | 负载均衡方法、装置、计算机设备及存储介质 | |
CN107948095B (zh) | 一种资源控制方法、装置及总线系统服务器 | |
CN104243405A (zh) | 一种请求处理方法、装置及系统 | |
CN110912972B (zh) | 一种业务处理方法、系统、电子设备及可读存储介质 | |
CN114143265A (zh) | 一种网络流量限流方法、装置、设备及存储介质 | |
CN112866132B (zh) | 面向海量标识的动态负载均衡器及方法 | |
CN113568756B (zh) | 一种密码资源协同动态调度方法和系统 | |
CN113032157B (zh) | 一种服务器自动智能扩缩容方法及系统 | |
CN111683133B (zh) | 一种基于微服务架构的业务限流方法及相关装置 | |
CN115277577A (zh) | 数据处理方法、装置、计算机设备和计算机可读存储介质 | |
CN111585798B (zh) | 一种网络资源参数配置方法、装置和计算机可读存储介质 | |
CN111078386A (zh) | 一种分布式调度系统的控制方法及控制装置 | |
CN111651274A (zh) | 一种基于微服务架构的业务分发方法及相关装置 | |
CN114448988A (zh) | 一种节点负载均衡方法、装置、设备、存储介质 | |
CN113806045A (zh) | 一种任务分配方法、系统、设备以及介质 | |
CN111327492B (zh) | 一种全链路监控处理方法 | |
CN104899072A (zh) | 基于虚拟化平台的细粒度资源调度系统及方法 | |
CN111737086B (zh) | 一种监控方式的调整方法、装置和计算机可读存储介质 | |
CN112532459A (zh) | 一种带宽资源调整方法、装置及设备 | |
CN114827033A (zh) | 数据流控方法、装置、设备与计算机可读存储介质 | |
KR100576713B1 (ko) | 동적 부하 분산 시스템 및 그 방법 | |
CN109918577B (zh) | 一种社交软件的监控方法和装置 | |
CN110955579A (zh) | 一种基于Ambari的大数据平台的监测方法 | |
CN111683132B (zh) | 一种基于微服务架构的业务分发方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |