CN116192752A - 业务流量控制方法、装置、电子设备及存储介质 - Google Patents
业务流量控制方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116192752A CN116192752A CN202310206070.1A CN202310206070A CN116192752A CN 116192752 A CN116192752 A CN 116192752A CN 202310206070 A CN202310206070 A CN 202310206070A CN 116192752 A CN116192752 A CN 116192752A
- Authority
- CN
- China
- Prior art keywords
- service
- node
- information
- request
- flow control
- 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.)
- Pending
Links
Images
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本公开提供了一种业务流量控制方法、装置、电子设备及存储介质,可以应用于流量控制技术领域、金融领域或其他领域。该业务流量控制方法包括:接收来自服务消费节点的第一时间窗口的业务请求,判断业务请求的流量和服务提供节点的服务资源信息的至少一者是否满足设定条件;响应于业务请求的流量和服务提供节点的服务资源信息中的至少一者满足设定条件,更新服务注册中心的服务提供节点的节点信息以及流量控制信息;以及根据服务消费节点获取的更新后的节点信息以及流量控制信息,对来自服务消费节点的第二时间窗口的业务请求进行流量控制。
Description
技术领域
本公开涉及流量控制技术领域,更具体地涉及一种业务流量控制方法、装置、电子设备以及存储介质。
背景技术
随着计算机信息技术的发展,服务消费节点与服务提供节点之间的流量在特定的时间呈现不同的变化,例如业务流量激增等情况,现有方案中,针对业务流量控制一般采用基于服务提供方限流,在触发限流对流量拦截;或者设置中间件,设置限流规则进行限流。基于服务提供方限流对于服务提供方不仅占用了网络、线程池、CPU、内存和连接池等系统资源开销,且对于服务提供方增加额外工作,除了实现限流处理外,还要实现对各服务结果的返回处理,对服务的侵入比较大。而基于中间件限流,需引入额外的中间件,增加系统的复杂度、稳定性以及维护成本,单个服务运行时间也会变长,且中间件中只能使用限流算法进行限流,针对消费请求的数量进行限流,无法根据提供方的实际实时性能容量支撑能力进行限流。
发明内容
鉴于上述问题,本公开提供了一种业务流量控制方法、装置、电子设备、可读存储介质及计算机程序产品,可以有效提高流量控制的准确性,针对服务消费节点以及服务提供节点的实际情况进行有效限流。
根据本公开的第一个方面,提供了一种业务流量控制方法,应用于分布式系统,所述分布式系统包括服务消费节点、服务提供节点以及服务注册中心,其中,所述方法包括:接收来自所述服务消费节点的第一时间窗口的业务请求,判断所述业务请求的流量和所述服务提供节点的服务资源信息的至少一者是否满足设定条件;响应于所述业务请求的流量和所述服务提供节点的服务资源信息中的至少一者满足所述设定条件,更新所述服务注册中心的服务提供节点的节点信息以及流量控制信息;以及根据所述服务消费节点获取的更新后的所述节点信息以及流量控制信息,对来自所述服务消费节点的第二时间窗口的业务请求进行流量控制。
在本公开的一些示例性实施例中,判断所述业务请求的流量和所述服务提供节点的服务资源信息的至少一者是否满足设定条件,包括:通过漏桶算法和令牌桶算法依次判断所述业务请求的流量是否满足第一设定条件;和/或实时监控所述服务提供节点的服务资源信息,以判断所述服务资源信息是否满足第二设定条件。
在本公开的一些示例性实施例中,通过漏桶算法和令牌桶算法依次判断所述业务请求的流量是否满足第一设定条件,包括:通过漏桶算法确定的所述业务请求到达漏桶的到达速度、输出漏桶的输出速度以及漏桶的额定请求容量,判断所述业务请求的流量是否超过漏桶的额定请求容量;以及通过令牌桶算法确定的令牌桶的当前令牌数与令牌桶的设定令牌数,判断所述业务请求的流量是否超过令牌桶的额定处理量;其中,在所述业务请求的流量超过漏桶的额定请求容量,和/或,所述业务请求的流量超过令牌桶的额定处理量时,满足所述第一设定条件。
在本公开的一些示例性实施例中,实时监控所述服务提供节点的服务资源信息,以判断所述服务资源信息是否满足第二设定条件,包括:通过监控指令按照设定时间间隔获取所述服务提供节点的服务资源信息的每一个使用指标,判断所述服务资源信息的使用指标是否超过设定阈值,其中,在所述服务提供节点的服务资源信息中的至少一个使用指标超过设定阈值,满足所述第二设定条件。
在本公开的一些示例性实施例中,所述的方法还包括:响应于所述业务请求的流量和所述服务提供节点的服务资源信息中的至少一者满足所述设定条件,对接收的来自服务消费节点的第一时间窗口的业务请求进行流量控制。
在本公开的一些示例性实施例中,根据所述服务消费节点获取的更新后的所述节点信息以及流量控制信息,对来自所述服务消费节点的第二时间窗口的业务请求进行流量控制,包括:响应来自所述服务消费节点的第二时间窗口的所述业务请求的请求对象与所述服务提供节点的节点信息以及流量控制信息相关联,根据所述流量控制信息对第二时间窗口的业务请求进行流量控制。
在本公开的一些示例性实施例中,所述流量控制信息包括限流信息和优先级信息,根据所述流量控制信息对第二时间窗口的业务请求进行流量控制,包括:根据所述限流信息对来自所述服务消费节点的第二时间窗口的业务请求拒绝;以及根据所述优先级信息对来自所述服务消费节点的第二时间窗口的业务请求按照优先级处理。
在本公开的一些示例性实施例中,所述的方法还包括:在更新所述服务注册中心的服务提供节点的节点信息以及流量控制信息之后,将所述节点信息以及所述流量控制信息缓存至所述服务消费节点。
本公开的第二方面,提供了一种业务流量控制装置,应用于分布式系统,所述分布式系统包括服务消费节点、服务提供节点以及服务注册中心,其中,所述装置包括:判断模块,配置成接收来自所述服务消费节点的第一时间窗口的业务请求,判断所述业务请求的流量和所述服务提供节点的服务资源信息的至少一者是否满足设定条件;响应模块,配置成响应于所述业务请求的流量和所述服务提供节点的服务资源信息中的至少一者满足所述设定条件,更新所述服务注册中心的服务提供节点的节点信息以及流量控制信息;以及控制模块,配置成根据所述服务消费节点获取的更新后的所述节点信息以及流量控制信息,对来自所述服务消费节点的第二时间窗口的业务请求进行流量控制。
在本公开的一些示例性实施例中,判断模块包括判断单元,所述判断单元被配置为:通过漏桶算法和令牌桶算法依次判断所述业务请求的流量是否满足第一设定条件;和/或实时监控所述服务提供节点的服务资源信息,以判断所述服务资源信息是否满足第二设定条件。
在本公开的一些示例性实施例中,判断单元还包括第一判断子模块,所述第一判断子模块被配置为:通过漏桶算法确定的所述业务请求到达漏桶的到达速度、输出漏桶的输出速度以及漏桶的额定请求容量,判断所述业务请求的流量是否超过漏桶的额定请求容量;以及通过令牌桶算法确定的令牌桶的当前令牌数与令牌桶的设定令牌数,判断所述业务请求的流量是否超过令牌桶的额定处理量;其中,在所述业务请求的流量超过漏桶的额定请求容量,和/或,所述业务请求的流量超过令牌桶的额定处理量时,满足所述第一设定条件。
在本公开的一些示例性实施例中,判断单元还包括第二判断子模块,所述第二判断子模块被配置为:通过监控指令按照设定时间间隔获取所述服务提供节点的服务资源信息的每一个使用指标,判断所述服务资源信息的使用指标是否超过设定阈值,其中,在所述服务提供节点的服务资源信息中的至少一个使用指标超过设定阈值,满足所述第二设定条件。
在本公开的一些示例性实施例中,所述的装置还包括控制子单元,所述控制子单元被配置为:响应于所述业务请求的流量和所述服务提供节点的服务资源信息中的至少一者满足所述设定条件,对接收的来自服务消费节点的第一时间窗口的业务请求进行流量控制。
在本公开的一些示例性实施例中,控制模块包括控制子模块,所述控制子模块配置为:响应来自所述服务消费节点的第二时间窗口的所述业务请求的请求对象与所述服务提供节点的节点信息以及流量控制信息相关联,根据所述流量控制信息对第二时间窗口的业务请求进行流量控制。
在本公开的一些示例性实施例中,所述流量控制信息包括限流信息和优先级信息,所述控制子模块还被配置为:根据所述限流信息对来自所述服务消费节点的第二时间窗口的业务请求拒绝;以及根据所述优先级信息对来自所述服务消费节点的第二时间窗口的业务请求按照优先级处理。
在本公开的一些示例性实施例中,所述的装置还包括缓存模块,所述缓存模块配置为:在更新所述服务注册中心的服务提供节点的节点信息以及流量控制信息之后,将所述节点信息以及所述流量控制信息缓存至所述服务消费节点。
本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储可执行指令,所述可执行指令在被所述处理器执行时,实现根据上文所述的方法。
本公开的第四方面提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时,实现根据上文所述的方法。
本公开的第五方面提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据上文所述的方法。
根据本公开的实施例,通过判断基于业务请求的流量和服务提供节点的资源信息的至少一者是否满足设定条件,从而可以使服务消费节点和服务提供节点针对流量进行同时控制,既可以在业务请求的流量过大时,对服务消费节点的业务请求的流量进行限流,也可以保证服务提供节点能够具有充足的服务资源以处理服务服务消费节点的业务请求,实现服务消费节点的业务请求与服务提供节点的服务资源信息相平衡,保证分布式系统性能最大化。通过响应于业务请求的流量和服务提供节点的服务资源信息中的至少一者满足设定条件,更新服务注册中心的服务提供节点的节点信息以及流量控制信息,并根据更新后的节点信息以及流量控制信息,对第二时间窗口的业务请求进行流量控制,实现基于前一时刻的服务提供节点的服务资源信息,对后一时刻的业务请求提前进行流量控制,可以有效避免服务消费节点的业务请求在服务提供节点无法处理的情况下继续发送至服务提供节点,避免增加服务提供节点的实际资源消耗,实现准确针对特定的业务请求进行提前限流,提高流量控制效率。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了可以应用本公开实施例的业务流量控制方法的系统架构的示意图;
图2示意性示出了根据本公开实施例的业务流量控制方法的流程图;
图3示意性示出了根据本公开实施例的业务流量控制方法在判断业务请求的流量以及服务资源信息是否满足设定条件的流程图;
图4示意性示出了根据本公开实施例的业务流量控制方法在操作S310的流程图;
图5示意性示出了根据本公开实施例的业务流量控制方法在操作S320的流程图;
图6示意性示出了根据本公开实施例的业务流量控制方法包括的另一流程图;
图7示意性示出了根据本公开实施例的业务流量控制方法在操作S230的流程图;
图8示意性示出了根据本公开实施例的业务流量控制方法在操作S231的流程图;
图9示意性示出了根据本公开实施例的业务流量控制方法还包括的另一流程图;
图10示意性示出了根据本公开实施例的业务流量控制装置的结构框图;
图11示意性示出了根据本公开实施例的适于实现业务流量控制方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
在本公开的技术方案中,所涉及的用户个人信息的获取、存储和应用等,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
在本公开的技术方案中,所涉及的用户个人信息的获取、存储和应用等操作,均获得了用户的授权。
在本文中,术语“服务消费节点”例如可以是指依赖其他服务的服务,即服务的调用方。术语“服务提供节点”例如可以是指为其他服务提供服务的服务,即服务的被调用方。术语“服务注册中心”例可以是与服务消费节点和服务提供节点连接,并且可以与二者进行信息交换的网络机构。
术语“第一时间窗口”和“第二时间窗口”分别表示位于不同的时间段内,例如第一时间窗口为前一时间段,第二时间窗口为位于前一时间段之后的时间段,第一时间窗口例如可以与第二时间窗口的时间段相同,也可以不同。
在相关技术中,基于微服务分布式架构中,完成一笔业务往往需多个应用参与才能完成,通过搭建分布式服务注册中心,实现多个异构系统间的服务相互调用,服务提供方系统需要将服务注册到注册中心,服务消费方系统需要通过注册中心订阅该服务才能完成服务的调用,注册中心保存着各个分布式应用节点的注册信息,包含IP信息、路由信息、提供方服务信息、消费方订阅信息,服务注册中心充当了所有系统的集中管理调用的角色,通过注册中心各个应用实现互联互通。目前银行业或互联公司常见的注册中心为zookeeper,zookeeper可以提供发布/订阅功能,且zookeeper可以提供高可用集群,保证注册中心的稳定。
目前基于分布式服务注册中心架构下限流框架实现分为两种,一种为消费方请求到达服务提供方后,使用限流算法(例如令牌桶算法、或者漏桶算法等)、限流规则(并发、QPS(Queries per second,每秒查询率)或TPS(Transactions per second,事务数/秒))进行限流。另外一种为基于中间件的限流,在所有消费方、请求先经过中间件时,使用限流算法进行限流,再到服务提供方。第一种限流方式为消费方请求到达服务提供方后,对服务请求进行拦截,在拦截中进行判断是否达到限流条件,一旦触发限流条件则在拦截处进行限流处理,通过将限流结果返回到消费方,服务提供方将不会执行对应服务。第二种限流方式所有的消费请求均先到达中间件,在中间件中执行对应限流规则进行拦截或通过,当需要限流时,则在中间件对消费请求返回响应限流。例如中间件包括网关、消息队列等。比如阿里巴巴的Sentinel限流框架是以接入网关实现,也有使用RabbitMQ实现的分布式限流框架。
对于现有技术中的限流方案,例如,消费方请求到达服务提供方后,由于消费方的消费请求通过网络已实际到达服务提供方,服务提供方响应了该服务并开启了线程去处理这个消费请求,对于服务提供方不仅占用了网络、线程池、CPU、内存和连接池等系统资源开销,且对于服务提供方增加额外工作,除了实现限流处理外,还要实现对各服务结果的返回处理,对服务的侵入比较大。另一种基于中间件限流面临的问题是需引入额外的中间件,增加分布式系统的复杂度、稳定性以及维护成本,单个服务运行时间也会变长;且中间件中只能使用限流算法进行限流,针对消费请求的数量进行限流,无法根据提供方的实际实时性能容量支撑能力进行限流。
在实际的场景中,例如银行业务的使用场景中,由于银行业务交易量极其巨大,且交易量随日期和时段呈周期性波动,鉴于对以上两种限流框架优缺点分析,迫切需要一种新的限流方式,利用已有的服务注册中心,在不增加系统开销同时,根据资源使用情况进行动态准确限流,且不增加应用系统的复杂度。
为了解决上述的问题,本公开提供了业务流量控制方法、装置、电子设备、可读存储介质及计算机程序产品,可以在已经具备服务注册中心的分布式系统中根据服务消费方、服务提供方的具体情况,利用服务注册中心实现业务的流量控制,有效提高流量控制的准确率同时不增加系统的复杂度,节省成本。该业务流量控制方法应用于分布式系统,所述分布式系统包括服务消费节点、服务提供节点以及服务注册中心,其中,业务流量控制方法包括但不限于:接收来自所述服务消费节点的第一时间窗口的业务请求,判断所述业务请求的流量和所述服务提供节点的服务资源信息的至少一者是否满足设定条件;响应于所述业务请求的流量和所述服务提供节点的服务资源信息中的至少一者满足所述设定条件,更新所述服务注册中心的服务提供节点的节点信息以及流量控制信息;以及根据所述服务消费节点获取的更新后的所述节点信息以及流量控制信息,对来自所述服务消费节点的第二时间窗口的业务请求进行流量控制。
根据本公开的实施例,通过判断基于业务请求的流量和服务提供节点的资源信息的至少一者是否满足设定条件,从而可以使服务消费节点和服务提供节点针对流量进行同时控制,既可以在业务请求的流量过大时,对服务消费节点的业务请求的流量进行限流,也可以保证服务提供节点能够具有充足的服务资源以处理服务服务消费节点的业务请求,实现服务消费节点的业务请求与服务提供节点的服务资源信息相平衡,保证分布式系统性能最大化。通过响应于业务请求的流量和服务提供节点的服务资源信息中的至少一者满足设定条件,更新服务注册中心的服务提供节点的节点信息以及流量控制信息,并根据更新后的节点信息以及流量控制信息,对第二时间窗口的业务请求进行流量控制,实现基于前一时刻的服务提供节点的服务资源信息,对后一时刻的业务请求提前进行流量控制,可以有效避免服务消费节点的业务请求在服务提供节点无法处理的情况下继续发送至服务提供节点,避免增加服务提供节点的实际资源消耗,实现准确针对特定的业务请求进行提前限流,提高流量控制效率。
图1示意性示出了可以应用本公开实施例的业务流量控制方法的系统架构的示意图。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。需要说明的是,本公开实施例提供的业务流量控制方法可用于流量控制技术领域、金融领域在流量控制的相关方面,也可用于除金融领域之外的任意领域,本公开实施例提供的业务流量控制方法和装置对应用领域不做限定。
如图1所示,可以应用业务流量控制方法的示例性系统架构100可以包括终端设备101、102、103,网络104、服务器105以及服务注册中心106。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。终端设备101、102、103例如可以是服务消费节点,用于发送业务请求。服务器105例如可以是服务提供节点,用于对服务消费节点发送的业务请求进行处理,以返回处理结果。服务注册中心106例如可以是用于基于服务消费节点和服务提供节点的信息进行管理的服务器,服务消费节点可以通过注册中心来实时获取服务提供节点的服务资源信息,服务消费节点可以将注册中心的服务资源信息缓存至本地便于读取。服务提供节点可以根据服务资源信息的使用情况,修改注册中心存储的服务资源信息,便于在服务消费节点获取服务资源信息时,能获取到实时的服务资源信息。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如邮件客户端应用、文件处理类应用、购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持数据输入、文件发送、数据分析、数据处理、网页浏览等功能的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所获取的数据或浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。也可以是对用户发送的文件等进行分析或处理,并基于处理结果对终端设备进行控制等,例如限制终端设备的访问等。
服务注册中心106可以提供各种注册服务、订阅服务、监控服务等,便于针对服务提供节点的实时服务资源信息对服务注册中心的信息进行修改,从而保证其他的例如服务消费节点获取的最新的信息,保证系统的正常运行。
需要说明的是,本公开实施例所提供的业务流量控制方法一般可以由服务器105或服务注册中心106执行。相应地,本公开实施例所提供的业务流量控制装置一般可以设置于服务器105或服务注册中心106中。本公开实施例所提供的业务流量控制方法也可以由不同于服务器105或服务注册中心106且能够与终端设备101、102、103和/或服务器105或服务注册中心106通信的服务器或服务器集群执行。相应地,本公开实施例所提供的业务流量控制装置也可以设置于不同于服务器105或服务注册中心106且能够与终端设备101、102、103和/或服务器105或服务注册中心106通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络、服务器和服务注册中心的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络、服务器和服务注册中心。
在本公开的示例性实施例中,业务流量控制方法可以应用与分布式系统,分布式系统包括服务消费节点、服务提供节点以及服务注册中心。
示例性地,服务提供方节点,通过支持多点接入的集群部署方式实现应用系统的高可用,服务提供方节点除了将服务提供方的节点构成的集群的服务资源信息注册到服务注册中心,同时部署监听进程,将服务资源信息的实时发送到服务注册中心。例如服务资源信息包括节点容器信息(包括但不限于IP地址、性能容量信息等)和服务信息(包括但不限于服务名称、服务超时和服务路由等)。
示例性地,服务消费节点,例如服务消费方分布式系统,可以通过支持多点接入的集群部署方式实现应用系统的高可用,通过订阅服务注册中心的服务提供节点的服务资源信息,从而获取服务提供方的具体信息,例如容器详细信息和服务详细信息。一旦服务注册中心的服务提供节点的服务资源信息发生变化,立即从服务注册中心获取最新的服务资源信息。服务注册中心,保留服务提供节点构成的集群的服务资源信息和服务消费节点构成的集群的订阅信息,当服务提供节点的服务资源信息变更时,将变更后的服务资源信息推送至服务消费节点构成的集群,使得服务提供节点和服务消费节点的信息保持一致性和及时性。
图2示意性示出了根据本公开实施例的业务流量控制方法的流程图。
如图2所示,本公开实施例的业务流量控制方法的流程200包括操作S210至操作S230。
在操作S210中,接收来自服务消费节点的第一时间窗口的业务请求,判断业务请求的流量和服务提供节点的服务资源信息的至少一者是否满足设定条件。
在操作S220中,响应于业务请求的流量和服务提供节点的服务资源信息中的至少一者满足设定条件,更新服务注册中心的服务提供节点的节点信息以及流量控制信息。
在操作S230中,根据服务消费节点获取的更新后的节点信息以及流量控制信息,对来自服务消费节点的第二时间窗口的业务请求进行流量控制。
在本公开的一些示例性实施例中,服务消费节点用于发送业务请求,发送的业务请求的流量可以是恒定的,也可以是波动变化的。
示例性地,通过接收服务消费节点在第一时间窗口内发送的业务请求,针对业务请求的流量和服务提供节点的服务资源进行判断,以确定是否需要对业务请求的流量进行控制处理。
例如,当业务请求的流量和服务提供节点的服务资源信息的至少一者满足设定条件,则对来自服务消费节点的业务请求进行流量控制处理。当业务请求的流量和服务提供节点的服务资源信息均不满足设定条件,则无需针对来自消费节点的业务请求进行流量控制处理。
图3示意性示出了根据本公开实施例的业务流量控制方法在判断业务请求的流量以及服务资源信息是否满足设定条件的流程图。
下面结合图3对判断业务请求的流量和服务提供节点的服务资源信息的至少一者是否满足设定条件的过程进行详细说明。如图3所示,在判断业务请求的流量和服务提供节点的服务资源信息的至少一者是否满足设定条件的流程300包括操作S310和操作S320。其中操作S310和操作S320可以是择一进行也可以是同时进行。
在接收到业务请求后,将业务请求放入整形队列中,并依次按照到达速度进入漏桶中,并通过下文所述的漏桶算法和令牌桶算法来判断业务请求的流量是否满足第一设定条件。
在操作S310中,通过漏桶算法和令牌桶算法依次判断所述业务请求的流量是否满足第一设定条件。
在相关的技术中,针对业务流量进行限流的方案中,现有限流方法有多种,其中最常见的有计数器算法、令牌桶算法、漏桶算法等,上述几种常见算法在单独使用的过程中存在各自的优缺点,通常适用于某种单一场景,对于特殊场景无法进行较好的处理。例如计数器算法优点是实现难度低,缺点是面对突发流量不能平滑限流,存量临界问题;令牌桶算法优点是支持一定程度上突发流量,缺点是影响业务结果且客户体验较差;漏桶算法优点是可平滑网络上的突发流量,缺点是不能有效使用网路资源。在银行业务的场景中,银行业务交易热点转换频繁(秒杀、抢购、双11、分行集中业务、批量集中调用等突发流量)且业务场景复杂的特点,既存在一定程度上的突发流量,也需要保证网路资源的有效使用以及提高客户的体验。
对此,本公开的示例性实施例中,通过将漏桶算法和令牌桶算法进行结合针对业务请求进行流量控制,即通过漏桶算法和令牌桶算法依次判断业务请求的流量是否满足第一设定条件,当通过漏桶算法和令牌桶算法依次判断业务请求的流量满足第一设定条件时,即触发流量控制,对来自服务消费节点的业务请求进行流量控制,既可以针对突发流量进行平滑处理,又能保证网路资源的有效使用,提高客户的体验的效果。
图4示意性示出了根据本公开实施例的业务流量控制方法在操作S310的流程图。
如图4所示,操作S310包括操作S311至操作S312。
在操作S311中,通过漏桶算法确定的业务请求到达漏桶的到达速度、输出漏桶的输出速度以及漏桶的额定请求容量,判断业务请求的流量是否超过漏桶的额定请求容量。
在本公开的一些实施例中,漏桶算法中对业务请求到达漏桶的到达速度、业务请求输出漏桶的输出速度以及漏桶的额定请求容量进行统计确定。其中,业务请求输出漏桶的输出速度以及漏桶的额定请求容量可以在不同的应用场景或不同的要求下进行调整设定,而业务请求到达漏桶的到达速度与服务消费节点的发送的业务请求有关。
在一些示例性性实施例中,操作S311的过程如下:
首先判断业务请求到达漏桶的到达速度与业务请求输出漏桶的输出速度之间的关系。若到达速度小于输出速度,则漏桶不起作用,即无需进行限流。若到达速度大于或等于输出速度,则考虑漏桶是否承担此次业务请求。
接下来,判断业务请求的到达速度、业务请求的输出速度以及设定的漏桶突发流量速度之间的关系来确定是否将业务请求发送至下一步进行继续处理。若到达速度一输出速度<漏桶突发流量速度,则无需针对业务请求进行限流,将业务请求发送至下一步进行处理。若到达速度一输出速度≥漏桶突发流量速度,则判断漏桶中的请求是否超过漏桶的额定请求容量。
接下来,在判断漏桶中的业务请求的数目是否超过漏桶的额定请求容量时,若漏桶中的业务请求的数目未超过漏桶的额定请求容量,则将业务请求放入漏桶中,等待下一步处理。若漏桶中的业务请求的数目超过漏桶的额定请求容量,则将业务请求丢弃,并向服务消费节点返回业务请求失败的结果。
在操作S312中,通过令牌桶算法确定的令牌桶的当前令牌数与令牌桶的设定令牌数,判断业务请求的流量是否超过令牌桶的额定处理量。
在本公开的一些实施例中,业务请求在经过上述的漏桶算法处理后,继续通过令牌桶算法进行处理。即从漏桶中输出的业务请求在处理之前从令牌桶中获取令牌,以便于对含有令牌的业务请求进行处理。令牌桶中的令牌以一定速度不断生成,并放入令牌桶,当令牌桶中的令牌数量超过令牌桶的最大令牌数目,则不再生成新令牌。
在业务请求从漏桶中输出后,从令牌桶中获取令牌,并在获取令牌后,通过服务提供节点对业务请求进行处理。若令牌桶中有未被使用的令牌,则判断业务请求是否成功处理,若业务请求成功处理,则判断令牌桶的当前令牌数与令牌桶的设定令牌数的关系,若当前令牌数与令牌桶的设定令牌数,将当前令牌释放,并回收至令牌桶,否则直接删除令牌。若令牌桶中的当前令牌数小于令牌桶的设定令牌数,则针对当前的业务请求返回业务请求失败的结果。
在本公开的实施例中,通过漏桶算法和令牌桶算法依次判断业务请求的流量是否满足第一设定条件,首先,漏桶算法适合突发流量,例如秒杀、抢购、整点打卡签到、微博热点事件等业务高并发场景,由业务场景硬气,持续的事件可能几分钟甚至十几分钟的长时间情况,为了提高用户体验以及减少业务受损的情况,当大量的业务请求到达时,不丢弃业务请求,将业务请求进行缓存(例如放入漏桶中),避免系统出现雪崩效应。在经过漏桶算法后,通过令牌桶算法判断业务请求的流量,保证服务提供节点在令牌桶的算法后的业务请求的流量能够进行有效处理,防止下游(例如服务提供节点)的处理能力不足导致系统崩溃的问题。
在本公开的一些实施例中,在业务请求的流量超过漏桶的额定请求容量,和/或,业务请求的流量超过令牌桶的额定处理量时,满足第一设定条件。即上述的两种条件中,业务请求的流量超过漏桶的额定请求容量以及业务请求的流量超过令牌桶的额定处理量两者中,满足其中一个即确定为满足第一设定条件。
通过上述操作S310,既可以针对突发流量进行平滑处理,又能保证后续的服务提供节点的服务资源被有效使用,提高客户的体验的效果。
在操作S320中,实时监控服务提供节点的服务资源信息,以判断服务资源信息是否满足第二设定条件。
图5示意性示出了根据本公开实施例的业务流量控制方法在操作S320的流程图。
如图5所示,操作S320具体可以包括操作S321。
在操作S321中,通过监控指令按照设定时间间隔获取服务提供节点的服务资源信息的每一个使用指标,判断服务资源信息的使用指标是否超过设定阈值。
示例性地,服务资源信息例如可以是CPU(中央处理器)、内存、数据库连接池、存储空间等资源,其中每个服务资源具有对应的实时指标,例如可以是CPU使用率、内存使用率、数据库连接池使用率、存储空间使用率等指标。例如可以通过设定的监控指令,在设定时间间隔对服务资源的使用指标进行获取,设定时间间隔例如可以是1s、5s、10s等时间间隔,时间间隔的数值可以根据实际的使用场景进行调整。在获取服务资源信息时,针对每一个使用指标进行获取,判断服务资源的使用指标是否超过设定阈值。设定阈值例如可以是使用率超过90%,95%等数值,可以根据实际的需求进行调整。每一个服务资源对应于不同的设定阈值。例如CPU使用率的设定阈值可以为95%,内存使用率的设定阈值为90%,数据库连接池的使用率可以为98%等,每一个使用指标具有对应的设定阈值,可以实现针对服务提供节点的服务资源信息进行准确反馈,从而提高流量控制的准确性,防止流量控制不准确导致的系统资源浪费或者系统崩溃的问题。
在服务提供节点的服务资源信息中的至少一个使用指标超过设定阈值,满足第二设定条件。
示例性地,当一个使用指标超过设定阈值,则说明服务提供节点的服务资源超过设定处理能力,若业务请求继续向服务提供节点请求处理,将导致系统无法处理的问题。
在本公开的实施例中,通过操作S310和操作S320判断业务请求的流量和服务提供节点的服务资源信息的至少一者是否满足设定条件,可以更加准确的从业务请求的流量和服务资源信息的使用情况来对业务流量进行控制,一方面保证服务消费节点的业务请求在最大程度被处理,另一方面保证服务提供节点的资源利用率达到最大。
在本公开的一些实施例中,还包括根据业务请求的流量和服务提供节点的服务资源信息调整第一设定条件和/第二设定条件。
示例性地,当业务请求的流量较大,通过漏桶算法和令牌桶算法依次判断业务请求的流量满足第一设定条件,此时对业务请求的流量进行限流,而服务提供节点的服务资源信息中包括的服务资源信息的使用指标与设定阈值存在较大差值,则说明业务流量在服务提供节点依然具有较大处理能力的情况下,为充分利用服务提供节点的资源,通过调整第一设定条件,保证服务利用节点的资源被充分利用。
又例如,当业务请求的流量较大,通过漏桶算法和令牌桶算法依次判断业务请求的流量不满足第一设定条件,而实时监控服务提供节点的服务资源信息,判断服务资源信息满足第二设定条件,则说明设定的第一设定条件可能无法针对业务请求进行有效判断处理,可以调整第一设定条件,从而使分布式系统在最业务流量进行控制时更加准确,防止服务提供节点因业务流量过大而导致服务崩溃宕机的问题出现。
图6示意性示出了根据本公开实施例的业务流量控制方法包括的另一流程图。
如图6所示,本公开实施例的业务流量控制方法还包括操作S400。
在操作S400中,响应于业务请求的流量和服务提供节点的服务资源信息中的至少一者满足设定条件,对接收的来自服务消费节点的第一时间窗口的业务请求进行流量控制。
示例性地,例如当业务请求的流量过大超过设定的流量,或者服务提供节点的资源信息中的使用指标过高,则说明服务提供节点无法针对业务请求进行有效处理,则对第一时间窗口的业务请求进行流量控制,例如可以是直接第一时间窗口的业务请求,返回业务请求失败的结果。
根据本公开的实施例,可以防止接收的第一时间窗口的业务请求被发送至服务提供节点,而服务提供节点无法针对业务请求进行处理,浪费服务提供节点的部分资源。
图7示意性示出了根据本公开实施例的业务流量控制方法在操作S230的流程图。
如图7所示,操作S230具体可以包括操作S231。
在操作S231中,响应来自服务消费节点的第二时间窗口的业务请求的请求对象与服务提供节点的节点信息以及流量控制信息相关联,根据流量控制信息对第二时间窗口的业务请求进行流量控制。
在本公开的一些示例性实施例中,服务消费节点的第二时间窗口的业务请求的请求对象与服务提供节点的节点信息以及流量控制信息相关联可以是指业务请求的请求对象为服务提供节点的特定节点,并且该特定节点的服务资源信息满足设定条件,即特定节点无法针对业务请求进行处理。
示例性地,节点信息例如可以是服务提供节点的IP地址或其他的调用信息。流量控制信息例如可以是针对流量进行具体控制操作的信息,包括限流信息或优先级信息,其中限流信息可以是直接针对业务请求返回业务请求失败的结果,防止将业务请求发送至服务提供节点,保证资源利用率。优先级信息例如可以是针对业务请求添加优先级信息,并在服务提供节点具备处理能力时,根据优先级信息在对业务请求进行处理,保证用户体验。
图8示意性示出了根据本公开实施例的业务流量控制方法在操作S231的流程图。
如图8所示,操作S231具体可以包括操作S2311和操作S2312。示例性地,操作S2311和操作S2312可以是择一进行也可以是同时进行。
在操作S2311中,根据限流信息对来自服务消费节点的第二时间窗口的业务请求拒绝。
例如,流量控制信息为限流信息,限流信息表示针对第二时间窗口的业务请求直接拒绝,返回业务请求失败的结果,此时第二时间窗口的业务请求无需在判断是否满足设定条件,也无需发送至服务提供节点,可以在一定程度上节省系统资源,提高业务流量控制的效率。
在操作S2312中,根据优先级信息对来自服务消费节点的第二时间窗口的业务请求按照优先级处理。
例如,流量控制信息为优先级信息,可以针对业务请求添加优先级信息,并在服务提供节点具备处理能力时,根据优先级信息在对业务请求进行处理,保证用户体验。
图9示意性示出了根据本公开实施例的业务流量控制方法还包括的另一流程图。
如图9所示,本公开实施例的业务流量控制方法还包括操作S500。
在操作S500中,在更新服务注册中心的服务提供节点的节点信息以及流量控制信息之后,将节点信息以及流量控制信息缓存至服务消费节点。
根据本公开的实施例,通过将服务注册中心的服务提供节点的节点信息及流量控制信息缓存至服务消费节点,可以有效减少服务注册中心的压力,并且缓存至本地,有利于提高处理速度。
在本公开的实施例中,例如可以通过消息订阅的方式,主动或被动的方式获取服务注册中心的节点信息、流量控制信息以及服务提供节点的服务资源信息,在上述信息发生变更时,将上述信息更新至相关方,保证数据的一致性和实时性。
在本公开的一些示例性实施例中,还包括根据服务提供节点的服务资源信息、节点信息以及流量控制信息调整设定条件,例如可以是通过人工手动调整,也可以是听过调整设备进行自动调整,其中调整设定条件包括调整第一设定条件和调整第二设定条件,从而使业务流量控制方法在实际运行过程中保证分布式系统中的服务提供节点具有最大的处理能力,同时能够尽可能多的处理服务消费节点的业务请求。
图10示意性示出了根据本公开实施例的业务流量控制装置的结构框图。
如图10所示,本公开实施例的业务流量控制装置600包括判断模块601、响应模块602以及控制模块603。
本公开实施例的业务流量控制装置600应用于分布式系统,分布式系统包括服务消费节点、服务提供节点以及服务注册中心。
判断模块601,配置成接收来自所述服务消费节点的第一时间窗口的业务请求,判断所述业务请求的流量和所述服务提供节点的服务资源信息的至少一者是否满足设定条件。在一实施例中,判断模块601可以用于执行前文描述的操作S210,在此不再赘述。
响应模块602,配置成响应于所述业务请求的流量和所述服务提供节点的服务资源信息中的至少一者满足所述设定条件,更新所述服务注册中心的服务提供节点的节点信息以及流量控制信息。在一实施例中,响应模块602可以用于执行前文描述的操作S220,在此不再赘述。
控制模块603,配置成根据所述服务消费节点获取的更新后的所述节点信息以及流量控制信息,对来自所述服务消费节点的第二时间窗口的业务请求进行流量控制。在一实施例中,控制模块603可以用于执行前文描述的操作S230,在此不再赘述。
在本公开的一些示例性实施例中,判断模块包括判断单元,所述判断单元被配置为:通过漏桶算法和令牌桶算法依次判断所述业务请求的流量是否满足第一设定条件;和/或实时监控所述服务提供节点的服务资源信息,以判断所述服务资源信息是否满足第二设定条件。
在本公开的一些示例性实施例中,判断单元还包括第一判断子模块,所述第一判断子模块被配置为:通过漏桶算法确定的所述业务请求到达漏桶的到达速度、输出漏桶的输出速度以及漏桶的额定请求容量,判断所述业务请求的流量是否超过漏桶的额定请求容量;以及通过令牌桶算法确定的令牌桶的当前令牌数与令牌桶的设定令牌数,判断所述业务请求的流量是否超过令牌桶的额定处理量;其中,在所述业务请求的流量超过漏桶的额定请求容量,和/或,所述业务请求的流量超过令牌桶的额定处理量时,满足所述第一设定条件。
在本公开的一些示例性实施例中,判断单元还包括第二判断子模块,所述第二判断子模块被配置为:通过监控指令按照设定时间间隔获取所述服务提供节点的服务资源信息的每一个使用指标,判断所述服务资源信息的使用指标是否超过设定阈值,其中,在所述服务提供节点的服务资源信息中的至少一个使用指标超过设定阈值,满足所述第二设定条件。
在本公开的一些示例性实施例中,所述的装置还包括控制子单元,所述控制子单元被配置为:响应于所述业务请求的流量和所述服务提供节点的服务资源信息中的至少一者满足所述设定条件,对接收的来自服务消费节点的第一时间窗口的业务请求进行流量控制。
在本公开的一些示例性实施例中,控制模块包括控制子模块,所述控制子模块配置为:响应来自所述服务消费节点的第二时间窗口的所述业务请求的请求对象与所述服务提供节点的节点信息以及流量控制信息相关联,根据所述流量控制信息对第二时间窗口的业务请求进行流量控制。
在本公开的一些示例性实施例中,所述流量控制信息包括限流信息和优先级信息,所述控制子模块还被配置为:根据所述限流信息对来自所述服务消费节点的第二时间窗口的业务请求拒绝;以及根据所述优先级信息对来自所述服务消费节点的第二时间窗口的业务请求按照优先级处理。
在本公开的一些示例性实施例中,所述的装置还包括缓存模块,所述缓存模块配置为:在更新所述服务注册中心的服务提供节点的节点信息以及流量控制信息之后,将所述节点信息以及所述流量控制信息缓存至所述服务消费节点。
根据本公开的实施例,判断模块601、响应模块602以及控制模块603中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,判断模块601、响应模块602以及控制模块603中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,判断模块601、响应模块602以及控制模块603中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图11示意性示出了根据本公开实施例的适于实现业务流量控制方法的电子设备的方框图。图11示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图11所示,根据本公开实施例的电子设备700包括处理器701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。处理器701例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器701还可以包括用于缓存用途的板载存储器。处理器701可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 703中,存储有电子设备700操作所需的各种程序和数据。处理器701、ROM702以及RAM 703通过总线704彼此相连。处理器701通过执行ROM 702和/或RAM 703中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 702和RAM 703以外的一个或多个存储器中。处理器701也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备700还可以包括输入/输出(I/O)接口705,输入/输出(I/O)接口705也连接至总线704。电子设备700还可以包括连接至I/O接口705的以下部件中的一项或多项:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 702和/或RAM 703和/或ROM 702和RAM 703以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的方法。
在该计算机程序被处理器701执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分709被下载和安装,和/或从可拆卸介质711被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被处理器701执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (12)
1.一种业务流量控制方法,应用于分布式系统,所述分布式系统包括服务消费节点、服务提供节点以及服务注册中心,其中,所述方法包括:
接收来自所述服务消费节点的第一时间窗口的业务请求,判断所述业务请求的流量和所述服务提供节点的服务资源信息的至少一者是否满足设定条件;
响应于所述业务请求的流量和所述服务提供节点的服务资源信息中的至少一者满足所述设定条件,更新所述服务注册中心的服务提供节点的节点信息以及流量控制信息;以及
根据所述服务消费节点获取的更新后的所述节点信息以及流量控制信息,对来自所述服务消费节点的第二时间窗口的业务请求进行流量控制。
2.根据权利要求1所述的方法,其中,判断所述业务请求的流量和所述服务提供节点的服务资源信息的至少一者是否满足设定条件,包括:
通过漏桶算法和令牌桶算法依次判断所述业务请求的流量是否满足第一设定条件;和/或
实时监控所述服务提供节点的服务资源信息,以判断所述服务资源信息是否满足第二设定条件。
3.根据权利要求2所述的方法,其中,
通过漏桶算法和令牌桶算法依次判断所述业务请求的流量是否满足第一设定条件,包括:
通过漏桶算法确定的所述业务请求到达漏桶的到达速度、输出漏桶的输出速度以及漏桶的额定请求容量,判断所述业务请求的流量是否超过漏桶的额定请求容量;以及
通过令牌桶算法确定的令牌桶的当前令牌数与令牌桶的设定令牌数,判断所述业务请求的流量是否超过令牌桶的额定处理量;
其中,在所述业务请求的流量超过漏桶的额定请求容量,和/或,所述业务请求的流量超过令牌桶的额定处理量时,满足所述第一设定条件。
4.根据权利要求2所述的方法,其中,实时监控所述服务提供节点的服务资源信息,以判断所述服务资源信息是否满足第二设定条件,包括:
通过监控指令按照设定时间间隔获取所述服务提供节点的服务资源信息的每一个使用指标,判断所述服务资源信息的使用指标是否超过设定阈值,
其中,在所述服务提供节点的服务资源信息中的至少一个使用指标超过设定阈值,满足所述第二设定条件。
5.根据权利要求1至4中任一项所述的方法,其中,还包括:
响应于所述业务请求的流量和所述服务提供节点的服务资源信息中的至少一者满足所述设定条件,对接收的来自服务消费节点的第一时间窗口的业务请求进行流量控制。
6.根据权利要求1至4中任一项所述的方法,其中,根据所述服务消费节点获取的更新后的所述节点信息以及流量控制信息,对来自所述服务消费节点的第二时间窗口的业务请求进行流量控制,包括:
响应来自所述服务消费节点的第二时间窗口的所述业务请求的请求对象与所述服务提供节点的节点信息以及流量控制信息相关联,根据所述流量控制信息对第二时间窗口的业务请求进行流量控制。
7.根据权利要求6所述的方法,其中,
所述流量控制信息包括限流信息和优先级信息,
根据所述流量控制信息对第二时间窗口的业务请求进行流量控制,包括:
根据所述限流信息对来自所述服务消费节点的第二时间窗口的业务请求拒绝;以及
根据所述优先级信息对来自所述服务消费节点的第二时间窗口的业务请求按照优先级处理。
8.根据权利要求1至4中任一项所述的方法,其中,还包括:在更新所述服务注册中心的服务提供节点的节点信息以及流量控制信息之后,
将所述节点信息以及所述流量控制信息缓存至所述服务消费节点。
9.一种业务流量控制装置,应用于分布式系统,所述分布式系统包括服务消费节点、服务提供节点以及服务注册中心,其中,所述装置包括:
判断模块,配置成接收来自所述服务消费节点的第一时间窗口的业务请求,判断所述业务请求的流量和所述服务提供节点的服务资源信息的至少一者是否满足设定条件;
响应模块,配置成响应于所述业务请求的流量和所述服务提供节点的服务资源信息中的至少一者满足所述设定条件,更新所述服务注册中心的服务提供节点的节点信息以及流量控制信息;以及
控制模块,配置成根据所述服务消费节点获取的更新后的所述节点信息以及流量控制信息,对来自所述服务消费节点的第二时间窗口的业务请求进行流量控制。
10.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储可执行指令,所述可执行指令在被所述处理器执行时,实现根据权利要求1至8中任一项所述的方法。
11.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时,实现根据权利要求1至8中任一项所述的方法。
12.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310206070.1A CN116192752A (zh) | 2023-02-27 | 2023-02-27 | 业务流量控制方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310206070.1A CN116192752A (zh) | 2023-02-27 | 2023-02-27 | 业务流量控制方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116192752A true CN116192752A (zh) | 2023-05-30 |
Family
ID=86442261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310206070.1A Pending CN116192752A (zh) | 2023-02-27 | 2023-02-27 | 业务流量控制方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116192752A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117076157A (zh) * | 2023-09-21 | 2023-11-17 | 腾讯科技(深圳)有限公司 | 请求管理方法、装置、计算机可读存储介质及计算机设备 |
-
2023
- 2023-02-27 CN CN202310206070.1A patent/CN116192752A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117076157A (zh) * | 2023-09-21 | 2023-11-17 | 腾讯科技(深圳)有限公司 | 请求管理方法、装置、计算机可读存储介质及计算机设备 |
CN117076157B (zh) * | 2023-09-21 | 2024-01-12 | 腾讯科技(深圳)有限公司 | 请求管理方法、装置、计算机可读存储介质及计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109684358B (zh) | 数据查询的方法和装置 | |
CN106131213B (zh) | 一种服务管理方法和系统 | |
CN108776934B (zh) | 分布式数据计算方法、装置、计算机设备及可读存储介质 | |
US10205773B2 (en) | Service platform architecture | |
TWI795565B (zh) | 資源分享方法、裝置、電腦裝置及存儲介質 | |
CN111432247B (zh) | 流量调度方法、装置、服务器及存储介质 | |
CN114172966B (zh) | 单元化架构下的服务调用方法、服务处理方法及装置 | |
CN112799824A (zh) | 一种限流方法、装置、设备和存储介质 | |
CN116192752A (zh) | 业务流量控制方法、装置、电子设备及存储介质 | |
US11616725B1 (en) | Hierarchical token buckets | |
US10893015B2 (en) | Priority topic messaging | |
CN116541167A (zh) | 系统流量控制方法、装置、电子设备及计算机可读介质 | |
CN114006907A (zh) | 分布式服务器的服务降级方法、装置、电子设备及介质 | |
CN109933426B (zh) | 服务调用的处理方法、装置、电子设备及可读存储介质 | |
US10979359B1 (en) | Polling resource management system | |
CN115250276A (zh) | 分布式系统及数据处理的方法和装置 | |
CN114363339B (zh) | 流量切换方法、装置、系统、设备、介质和程序产品 | |
CN114422442B (zh) | 多维动态分组限流方法、装置、设备及存储介质 | |
CN115174588B (zh) | 带宽控制方法、装置、设备、存储介质和程序产品 | |
CN114006843B (zh) | 确定带宽的方法、装置和电子设备 | |
CN114710406B (zh) | 超时阈值的动态确定方法、装置、电子设备和介质 | |
CN113347250B (zh) | 数据访问方法、数据访问装置、电子设备及可读存储介质 | |
CN114745316B (zh) | 路由方法、装置、设备和介质 | |
CN114816736A (zh) | 业务处理方法、装置、设备和介质 | |
CN115934355A (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 |