CN115334082A - 负载均衡方法、装置、计算机设备、存储介质和产品 - Google Patents
负载均衡方法、装置、计算机设备、存储介质和产品 Download PDFInfo
- Publication number
- CN115334082A CN115334082A CN202210957691.9A CN202210957691A CN115334082A CN 115334082 A CN115334082 A CN 115334082A CN 202210957691 A CN202210957691 A CN 202210957691A CN 115334082 A CN115334082 A CN 115334082A
- Authority
- CN
- China
- Prior art keywords
- service provider
- token bucket
- token
- tokens
- capacity
- 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
- 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/215—Flow control; Congestion control using token-bucket
Abstract
本申请涉及一种负载均衡方法、装置、计算机设备、存储介质和产品,可用于金融科技领域或其他相关领域,该方法包括:获取服务提供方自身的设备状态信息,并基于设备状态信息确定令牌生成速率以及令牌桶的容量;按照令牌生成速率生成令牌,并在令牌桶中令牌的数量少于令牌桶的容量的情况下,将令牌存储到令牌桶中;令牌用于指示对接收到的处理请求进行处理,基于令牌桶中令牌的数量与令牌桶的容量的比值,得到服务提供方的均衡系数,并向服务消费方发送均衡系数,以供服务消费方基于各服务提供方的均衡系数确定目标服务提供方后触发目标服务提供方,从令牌桶中获取令牌,并分配给服务消费方发送的处理请求。采用本方法能够降低处理请求的丢失率。
Description
技术领域
本申请涉及金融科技技术领域,特别是涉及一种负载均衡方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
负载均衡,可以是指将工作任务平衡地分摊到多个操作单元上进行处理,实现工作任务的协同完成。为防止服务消费方的处理请求因为超时而导致丢失的现象,可以通过负载均衡方法进行相应处理。
传统技术中,可以利用负载均衡服务器实现负载均衡。负载均衡服务器可以维护一个服务清单,服务清单中记录有可用的服务提供方,当接收到服务消费方发送的处理请求时,负载均衡服务器可以根据服务清单确定出一个可用的服务提供方,由该可用的服务提供方响应服务消费方的处理请求,降低系统的压力。
然而,目前的负载均衡方法依然存在负载不均衡的情况,处理请求的丢失率高。
发明内容
基于此,有必要针对上述技术问题,提供一种能够降低处理请求的丢失率的负载均衡方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种负载均衡方法。所述方法包括:
获取服务提供方自身的设备状态信息,并基于所述设备状态信息确定令牌生成速率以及令牌桶的容量;
按照所述令牌生成速率生成令牌,并在所述令牌桶中令牌的数量少于所述令牌桶的容量的情况下,将所述令牌存储到所述令牌桶中;所述令牌用于指示所述服务提供方对接收到的处理请求进行处理;
基于所述令牌桶中令牌的数量与所述令牌桶的容量的比值,得到所述服务提供方的均衡系数,并向服务消费方发送所述均衡系数,以供所述服务消费方基于各服务提供方的均衡系数确定目标服务提供方后触发所述目标服务提供方,从令牌桶中获取令牌,并分配给所述服务消费方发送的处理请求。
在其中一个实施例中,所述获取服务提供方自身的设备状态信息,包括:
获取服务提供方中的多个硬件当前的硬件使用率,并确定所述服务提供方当前针对处理请求的请求处理效率;
根据多个硬件使用率和所述请求处理效率,得到所述服务提供方当前的多个设备状态信息
在其中一个实施例中,所述基于所述设备状态信息确定令牌生成速率以及令牌桶的容量,包括:
获取各设备状态信息的权重系数,并基于各设备状态信息以及各设备状态信息的权重系数,确定令牌生成速率;
基于所述令牌生成速率以及预设的处理请求的处理周期,确定令牌桶的容量。
在其中一个实施例中,所述获取各设备状态信息的权重系数,并基于各设备状态信息以及各设备状态信息的权重系数,确定令牌生成速率,包括:
基于各设备状态信息以及各设备状态信息的权重系数,确定服务提供方的处理资源;
确定服务提供方的处理资源与预先确定的单个处理请求的处理时间的比值,得到所述令牌生成速率。
在其中一个实施例中,所述基于所述令牌桶中令牌的数量与所述令牌桶的容量的比值,得到所述服务提供方的均衡系数,并向服务消费方发送所述均衡系数的步骤包括:
将所述令牌桶中令牌的数量、所述令牌桶的容量发送至预设的注册中心,由所述注册中心基于所述令牌桶中令牌的数量与所述令牌桶的容量的比值,得到所述服务提供方的均衡系数,并向服务消费方发送所述均衡系数。
在其中一个实施例中,在所述向服务消费方发送所述均衡系数之后,所述方法还包括:
接收所述服务消费方发送的处理请求,从所述令牌桶中获取令牌,并将所述令牌分配给所述处理请求;
当满足对接收到的处理请求进行响应的触发条件时,对接收到的处理请求进行响应,并在检测到所述接收到的处理请求中携带令牌的情况下,对所述接收到的处理请求进行处理。
第二方面,本申请还提供了一种负载均衡装置。所述装置包括:
获取模块,用于获取服务提供方自身的设备状态信息,并基于所述设备状态信息确定令牌生成速率以及令牌桶的容量;
令牌生成模块,用于按照所述令牌生成速率生成令牌,并在所述令牌桶中令牌的数量少于所述令牌桶的容量的情况下,将所述令牌存储到所述令牌桶中;所述令牌用于指示所述服务提供方对接收到的处理请求进行处理;
均衡处理模块,用于基于所述令牌桶中令牌的数量与所述令牌桶的容量的比值,得到所述服务提供方的均衡系数,并向服务消费方发送所述均衡系数,以供所述服务消费方基于各服务提供方的均衡系数确定目标服务提供方后触发所述目标服务提供方,从令牌桶中获取令牌,并分配给所述服务消费方发送的处理请求。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上任一项所述的方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的方法的步骤。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现如上任一项所述的方法的步骤。
上述负载均衡方法、装置、计算机设备、存储介质和计算机程序产品,获取服务提供方自身的设备状态信息,并基于设备状态信息确定令牌生成速率以及令牌桶的容量;按照令牌生成速率生成令牌,并在令牌桶中令牌的数量少于令牌桶的容量的情况下,将令牌存储到令牌桶中;令牌用于指示服务提供方对接收到的处理请求进行处理;基于令牌桶中令牌的数量与令牌桶的容量的比值,得到服务提供方的均衡系数,并向服务消费方发送均衡系数,以供服务消费方基于各服务提供方的均衡系数确定目标服务提供方后触发目标服务提供方,从令牌桶中获取令牌,并分配给服务消费方发送的处理请求。服务提供方在接收处理请求之前,先获取自身的设备状态信息,然后基于自身设备状态信息确定令牌生成速率和令牌桶的容量,从而确定出服务提供方的均衡系数,进而确定出服务提供方自身的处理能力,以供服务消费方根据服务提供方的处理能力进行选择对应的目标服务提供方。一方面,相比现有的负载均衡服务器将负载均匀分配至各个服务提供方,本方案能够有效评估各个服务提供方的处理能力,从而避免了处理请求超时引起的丢失现象,进而降低处理请求的丢失率。另一方面,本申请是将设备状态信息转为令牌,并将转换的令牌存入到令牌桶中,将令牌桶中的令牌,分配给服务消费方,使得由当前的令牌桶中令牌的数量与令牌桶的容量的比值确定的均衡系数,能够更为准确的确定服务提供方的处理能力,进一步降低处理请求的丢失率。
附图说明
图1为一个实施例中负载均衡方法的应用环境图;
图2为一个实施例中负载均衡方法的流程示意图;
图3为另一个实施例中负载均衡方法的应用环境图;
图4为另一个实施例中负载均衡方法的流程示意图;
图5为一个实施例中负载均衡装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请的负载均衡方法、装置、计算机设备、存储介质和计算机程序产品可用于金融科技领域,也可用于除金融科技领域之外的其他相关领域,本申请的负载均衡方法、装置、计算机设备、存储介质和计算机程序产品的应用领域不做限定。
本申请实施例提供的负载均衡方法,可以应用于如图1所示的应用环境中。该应用环境可以包括:服务消费方110、服务提供方120;其中,服务消费方110通过网络与服务提供方120进行通信。服务消费方可以是客户端或服务器;服务提供方可以是服务器或服务器集群。
在实际应用中,服务提供方可以先获取自身的设备状态信息,并基于该设备状态信息确定令牌生成速率和令牌桶的容量;然后,按照令牌生成速率生成令牌,并在令牌桶中令牌的数量少于令牌桶的容量的情况下,将令牌存储到令牌桶中;接着,服务提供方可以基于当前令牌桶中令牌的数量与令牌桶的容量的比值来确定服务提供方的均衡系数,并将均衡系数发送给服务消费方。
服务器消费方在接收到各服务提供方发送的均衡系数后,可以基于各服务提供方的均衡系数确定目标服务提供方后触发目标服务提供方执行从令牌桶中获取令牌,并将令牌分配给服务消费方发送的处理请求的操作。
在一个实施例中,如图2所示,提供了一种负载均衡方法,以该方法应用于图1中的服务提供方120为例进行说明,包括以下步骤:
步骤S202,获取服务提供方自身的设备状态信息,并基于设备状态信息确定令牌生成速率以及令牌桶的容量。
作为一示例,设备状态信息可以是影响处理请求的处理效率的指标。例如,可以是影响处理请求的处理效率的硬件资源的指标,也可以是影响处理请求的处理效率的软件资源的指标。令牌生成速率可以是单位时间内令牌的生成个数。令牌桶的容量可以是容纳令牌的数量。
实际应用中,服务提供方可以获取到当前时刻自身的多个设备状态信息后,利用多个设备状态信息来确定令牌生成速率和令牌桶的容量。
步骤S204,按照令牌生成速率生成令牌,并在令牌桶中令牌的数量少于令牌桶的容量的情况下,将令牌存储到令牌桶中;令牌用于指示服务提供方对接收到的处理请求进行处理。
在具体实现中,服务提供方按照令牌生成速率来生成令牌,并判断当前令牌桶中令牌的数量是否少于令牌桶的容量;若是,则将当前生成的令牌存储到令牌桶中;若否,则将当前生成的令牌丢弃。
步骤S206,基于令牌桶中令牌的数量与令牌桶的容量的比值,得到服务提供方的均衡系数,并向服务消费方发送均衡系数,以供服务消费方基于各服务提供方的均衡系数确定目标服务提供方后触发目标服务提供方,从令牌桶中获取令牌,并分配给服务消费方发送的处理请求。
作为一示例,均衡系数可以是反映服务提供方自身可用资源(如软件资源和硬件资源)被占用情况的信息,均衡系数可以与服务提供方自身可用资源的占用率呈正相关,即均衡系数越大,服务提供方自身可用资源的占用率则越高。均衡系数也可以与服务提供方自身可用资源的占用率呈负相关,即均衡系数越大,服务提供方自身可用资源的占用率则越低。
在将新生成的令牌存储到令牌桶后,服务提供方可以对令牌桶中当前存储的令牌进行统计,确定令牌桶中令牌的数量,进而服务提供方可以计算当前时刻令牌桶中令牌的数量与令牌桶的容量的比值,由此得到均衡系数;然后,将均衡系数发送给服务消费方,使得服务消费方可以根据各服务提供方发送的均衡系数确定目标服务提供方,然后触发目标服务提供方从自身的令牌桶中获取令牌,并分配给该服务消费方发送的处理请求。
可以理解,本申请中的令牌可以指示服务提供方处理来自服务消费方的处理请求的令牌,且该令牌可以被分配给相应的处理请求,从而可以使服务提供方仅对分配有令牌的处理请求进行处理,而令牌的令牌生成速率以及令牌的数量(即令牌桶的容量)是可以根据服务提供方自身的设备状态信息进行调整的,换而言之,通过按照服务提供方的设备状态信息调整令牌的生成方式(即令牌生成速率和令牌的数量),服务提供方可以相应调整能够分配给处理请求的令牌的数量以及分配的速度,从而调整服务提供方处理来自服务消费方的处理请求的数量,能够对需要处理的处理请求进行限流,避免流量过大、增加服务提供方负载压力。而另一方面,服务提供方通过基于令牌桶中令牌的数量与令牌桶的容量的比值,确定出均衡系数并将其发送给服务消费方,能够使服务消费方根据均衡系数从多个服务提供方中确定出尽快供应令牌的目标服务提供方,避免将处理请求发送到已处于高负载状态的服务提供方。
上述负载均衡方法,获取服务提供方自身的设备状态信息,并基于设备状态信息确定令牌生成速率以及令牌桶的容量;按照令牌生成速率生成令牌,并在令牌桶中令牌的数量少于令牌桶的容量的情况下,将令牌存储到令牌桶中;令牌用于指示服务提供方对接收到的处理请求进行处理;基于令牌桶中令牌的数量与令牌桶的容量的比值,得到服务提供方的均衡系数,并向服务消费方发送均衡系数,以供服务消费方基于各服务提供方的均衡系数确定目标服务提供方后触发目标服务提供方,从令牌桶中获取令牌,并分配给服务消费方发送的处理请求。服务提供方在接收处理请求之前,先获取自身的设备状态信息,然后基于自身设备状态信息确定令牌生成速率和令牌桶的容量,从而确定出服务提供方的均衡系数,进而确定出服务提供方自身的处理能力,以供服务消费方根据服务提供方的处理能力进行选择对应的目标服务提供方。一方面,相比现有的负载均衡服务器将负载均匀分配至各个服务提供方,本方案能够有效评估各个服务提供方的处理能力,从而避免了处理请求超时引起的丢失现象,进而降低处理请求的丢失率。另一方面,本申请是将设备状态信息转为令牌,并将转换的令牌存入到令牌桶中,将令牌桶中的令牌,分配给服务消费方,使得由当前的令牌桶中令牌的数量与令牌桶的容量的比值确定的均衡系数,能够更为准确的确定服务提供方的处理能力,进一步降低处理请求的丢失率。
在一个实施例中,步骤202中获取服务提供方自身的设备状态信息的步骤包括:
步骤2021,获取服务提供方中的多个硬件当前的硬件使用率,并确定服务提供方当前针对处理请求的请求处理效率。
作为一示例,服务提供方内包括多个硬件,例如,CPU、内存、磁盘、网络设备。硬件使用率可以是CPU使用率、内存使用率、磁盘IO使用率、网络带宽使用率中的至少两个。请求处理效率可以是处理请求的并发量、交易吞吐量、请求处理成功率中的一个或多个。
步骤2022,根据多个硬件使用率和请求处理效率,得到服务提供方当前的多个设备状态信息。
实际应用中,可以由多个硬件使用率和请求处理效率组成服务提供方当前的多个设备状态信息。
在本实施例中,利用多个硬件使用率和请求处理效率作为多个设备状态信息,能够准确地确定令牌生成速率和令牌桶的容量,从而准确确定服务提供方的均衡系数,进而降低处理请求的丢失率。
在一个实施例中,步骤202中基于设备状态信息确定令牌生成速率以及令牌桶的容量的步骤包括:
步骤2023,获取各设备状态信息的权重系数,并基于各设备状态信息以及各设备状态信息的权重系数,确定令牌生成速率。
在实际应用中,不同的硬件设备或软件情况对服务提供方的处理能力影响程度存在差异,可以预先为不同的设备状态信息分配相应的权重系数,例如可以根据设备状态信息对令牌生成速率的影响程度确定权重系数。各个权重系数也可以根据业务场景来确定,如果是CPU密集型场景,可以增大CPU使用率对应的权重系数。如果是内存要求高的场景,可以增大内存使用率对应的权重系数。进而在得到服务提供方当前的多个设备状态信息后,可以分别获取各设备状态信息对应的权重系数,然后根据各设备状态信息和各个设备状态信息的权重系数来确定令牌生成速率。
步骤2024,基于令牌生成速率以及预设的处理请求的处理周期,确定令牌桶的容量。
作为一示例,可以将令牌生成速率与预设的处理请求的处理周期的乘积,作为令牌桶的容量。其中,处理请求的处理周期的大小可以根据业务需求定义。示例性地,可以按照如下公式获取令牌桶的容量。
Bc=Tc×CIR
其中,Bc为令牌桶的容量,Tc为预设的处理请求的处理周期,CIR为令牌生成速率。u为硬件使用率,如CPU使用率、内存使用率、磁盘IO使用率、网络带宽使用率;当CPU使用率、内存使用率、磁盘IO使用率、网络带宽使用率中任意一个的值为1时,u等于1,此时,令牌桶的容量为0。当CPU使用率、内存使用率、磁盘IO使用率、网络带宽使用率的值均为0时,u=0,此时,可得到理论最大令牌桶容量。
在本实施例中,令牌桶的容量可以由令牌生成速率确定,能够避免令牌桶的容量设置的数值过大或过小,使得令牌桶的容量设置更为合理,从而有利于准确的评估出服务提供方的处理能力,进一步降低处理请求的丢失率。
在一个实施例中,步骤2023中获取各设备状态信息的权重系数,并基于各设备状态信息以及各设备状态信息的权重系数,确定令牌生成速率的步骤包括:
步骤20231,基于各设备状态信息以及各设备状态信息的权重系数,确定服务提供方的处理资源。
在一示例中,设备状态信息还可以包括CPU核数。
在具体应用中,可以根据下列公式计算服务提供方的处理资源。
其中,Y为处理资源,δC为CPU使用率的权重系数,δm为内存使用率的权重系数,δio为磁盘IO使用率的权重系数,δw为网络带宽使用率的权重系数,δCo为处理请求的并发量的权重系数,cC为CPU核数,uC为CPU使用率,um为内存使用率,uio为磁盘IO使用率,uw为网络带宽使用率,co为处理请求的并发量。且,0≤δC、δm、δio、δw、δCo,且,0≤uC、um、uio、uw≤1。由于这些指标是不断变化的,因此,令牌生成速率、令牌桶的容量也是不断变化的。
步骤20232,确定服务提供方的处理资源与预先确定的单个处理请求的处理时间的比值,得到令牌生成速率。
在具体应用中,可以按照下列公式计算获得令牌的生成速率。
其中,CIR为令牌生成速率,tp为单个处理请求的处理时间,优选地,tp为处理请求的平均处理时间。
在本实施例中,通过上述硬件使用率和请求处理效率,能够使得令牌生成速率和令牌桶的容量不是固定不变的,更能反映出当前服务提供方的处理能力,准确地评估出服务提供方的处理能力,降低处理请求的丢失率。且,服务提供方自行计算令牌生成速率和令牌桶的容量,能够在大交易量,高并发的场景下消除时间误差,从而提升服务提供方的处理能力的评估的有效性和准确性。
在一个实施例中,步骤204中基于令牌桶中令牌的数量与令牌桶的容量的比值,得到服务提供方的均衡系数,并向服务消费方发送均衡系数的步骤包括:
将令牌桶中令牌的数量、令牌桶的容量发送至预设的注册中心,由注册中心基于令牌桶中令牌的数量与令牌桶的容量的比值,得到服务提供方的均衡系数,并向服务消费方发送均衡系数。
在一示例中,注册中心可以根据下列公式计算服务提供方的均衡系数。
其中,Wp(i)为当前服务提供方的均衡系数,Tp(i)为当前服务提供方的令牌桶中令牌的数量,即,令牌的库存,Vb(i)为当前服务提供方的令牌桶的容量。当均衡系数越大,该服务提供方被调用的几率就越小。
在本实施例中,通过注册中心根据令牌桶中令牌的数量与令牌桶的容量的比值确定服务提供方的均衡系数,然后将均衡系数发送给服务消费方,能够缓解服务提供方的处理压力,从而降低处理请求的丢失率。
在一示例中,可以设置多个注册中心,且注册中心可以设置在服务提供方外,每个注册中心可以与多个服务提供方连接,一个服务提供方仅连接一个注册中心。
在本实施例中,由于令牌生成速率和令牌桶容量是根据服务提供方的设备状态信息确定,当服务提供方的设备状态信息变化时,令牌生成速率和令牌桶的容量也是在变化的,当令牌生成速率越慢,生成的令牌的数量越少,令牌桶中令牌的数量也就相应减少,当令牌生成速率越快,生成的令牌的数量增多,令牌桶中令牌的数量也就相应增多,从而能够准确反应出服务提供方的当前的处理能力,更有助于实现负载均衡。
在一个实施例中,该方法还包括:
步骤S208,接收服务消费方发送的处理请求,从令牌桶中获取令牌,并将令牌分配给处理请求。
具体应用中,可以根据服务消费方发送的处理请求的顺序,对处理请求进行排序,若排序队列已满,可向服务消费方反馈令牌获取队列已满的信息,以便服务消费方重新确定新的目标服务提供方,避免出现处理请求丢失的现象。接着,可以检测令牌桶中是否存有令牌;若是,则获取一个令牌,并将该令牌分配给当前的处理请求。若否,则向服务消费方发送令牌获取失败的信息,以便服务消费方重新确定新的目标服务提供方,也避免出现处理请求丢失的现象。
步骤S210,当满足对接收到的处理请求进行响应的触发条件时,对接收到的处理请求进行响应,并在检测到所述接收到的处理请求中携带令牌的情况下,对所述接收到的处理请求进行处理。
具体应用中,服务提供方给处理请求分配令牌后,可以不立刻进行处理,而是满足一定的时间的触发条件后,再处理原先接收到的处理请求,若当前需求响应的处理请求携带令牌,则对该请求进行处理;若处理请求中不携带令牌,则不处理该处理请求,并向服务消费方返回处理繁忙消息,以便服务消费方重新确定新的目标服务提供方,避免处理请求的等待时间过长而导致处理请求丢失的现象。
在本实施例中,服务提供方为处理请求分配令牌,并对携带有令牌的处理请求进行处理,能够根据自身处理能力来确定处理请求,减少处理请求的堆积,进一步降低处理请求的丢失率。
为了使本领域技术人员能够更好地理解上述步骤,以下通过一个例子对本申请实施例加以示例性说明,但应当理解的是,本申请实施例并不限于此。
本实施例可以应用于如图3-4所示的应用环境中。该应用环境可以包括服务提供方、注册中心、服务消费方。
服务提供方先根据设备状态信息,确定令牌生成速率以及令牌桶的容量;然后按照令牌生成速率生成令牌,判断令牌桶中令牌的数量是否少于令牌桶的容量,若是,则将当前生成的令牌存储到令牌桶中。若否,则丢弃当前生成的令牌。然后,将服务提供方的标识信息和令牌注册信息发送给注册中心,令牌注册信息为当前的令牌桶中令牌的数量以及令牌桶的容量。
每一个注册中心可以在接收到服务提供方发送的令牌桶中令牌的数量以及令牌桶的容量后进行登记,然后根据服务提供方发送的令牌桶中令牌的数量以及令牌桶的容量确定该服务提供方的权重,即确定该服务提供方的均衡系数。
当服务消费方有发现和订阅服务提供方的消息的需求时,服务消费方可以通过负载均衡服务器,从多个注册中心中确定目标注册中心;然后从目标注册中心中获取该目标注册中心中的多个均衡系数;接着可以根据均衡系数的大小,确定目标服务提供方。然后,可以将处理请求(即服务请求)发送至目标服务提供方。
服务提供方还可以接收服务消费方的处理请求,然后检测当前处理请求的请求队列是否有剩余空间,若是,则将处理请求加入到请求队列中;若否,则将该处理请求丢弃。
进而服务提供方可以依次从请求队列中获取处理请求并分配令牌,具体而言,服务提供方可以检测令牌桶中是否存有令牌,若是,则获取一个令牌,并将该令牌分配给当前的处理请求和更新令牌桶内令牌的信息;若否,则向服务消费方发送令牌获取失败的信息,并拒绝对服务消费方发送的处理请求进行处理。服务提供方还可以在检测到处理请求中携带令牌时,对该处理请求进行处理,并向服务消费方返回处理结果。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的负载均衡方法的负载均衡装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的两个负载均衡装置实施例中的具体限定可以参见上文中对于负载均衡方法的限定,在此不再赘述。
在一个实施例中,如图5所示,提供了一种负载均衡装置,包括:
获取模块31,用于获取服务提供方自身的设备状态信息,并基于设备状态信息确定令牌生成速率以及令牌桶的容量;
令牌生成模块32,用于按照令牌生成速率生成令牌,并在令牌桶中令牌的数量少于令牌桶的容量的情况下,将令牌存储到令牌桶中;令牌用于指示服务提供方对接收到的处理请求进行处理;
均衡处理模块33,用于基于令牌桶中令牌的数量与令牌桶的容量的比值,得到服务提供方的均衡系数,并向服务消费方发送均衡系数,以供服务消费方基于各服务提供方的均衡系数确定目标服务提供方后触发目标服务提供方,从令牌桶中获取令牌,并分配给服务消费方发送的处理请求。
在一个实施例中,获取模块31,具体用于:
获取服务提供方中的多个硬件当前的硬件使用率,并确定服务提供方当前针对处理请求的请求处理效率;
根据多个硬件使用率和请求处理效率,得到服务提供方当前的多个设备状态信息。
在一个实施例中,获取模块31,具体用于:
获取各设备状态信息的权重系数,并基于各设备状态信息以及各设备状态信息的权重系数,确定令牌生成速率;
基于令牌生成速率以及预设的处理请求的处理周期,确定令牌桶的容量。
在一个实施例中,获取模块31,具体用于:
获取各设备状态信息的权重系数,并基于各设备状态信息以及各设备状态信息的权重系数,确定令牌生成速率,包括:
基于各设备状态信息以及各设备状态信息的权重系数,确定服务提供方的处理资源;
确定服务提供方的处理资源与预先确定的单个处理时间的比值,得到令牌生成速率。
在一个实施例中,均衡处理模块33,具体用于:
基于令牌桶中令牌的数量与令牌桶的容量的比值,得到服务提供方的均衡系数,并向服务消费方发送均衡系数的步骤包括:
将令牌桶中令牌的数量、令牌桶的容量发送至预设的注册中心,由注册中心基于令牌桶中令牌的数量与令牌桶的容量的比值,得到服务提供方的均衡系数,并向服务消费方发送均衡系数。
在一个实施例中,该装置还包括:
令牌分配模块,用于接收服务消费方发送的处理请求,从令牌桶中获取令牌,并将令牌分配给处理请求;
处理模块,用于当满足对接收到的处理请求进行响应的触发条件时,对接收到的处理请求进行响应,并在检测到接收到的处理请求中携带令牌的情况下,对接收到的处理请求进行处理。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种负载均衡方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取服务提供方自身的设备状态信息,并基于设备状态信息确定令牌生成速率以及令牌桶的容量;
按照令牌生成速率生成令牌,并在令牌桶中令牌的数量少于令牌桶的容量的情况下,将令牌存储到令牌桶中;令牌用于指示服务提供方对接收到的处理请求进行处理;
基于令牌桶中令牌的数量与令牌桶的容量的比值,得到服务提供方的均衡系数,并向服务消费方发送均衡系数,以供服务消费方基于各服务提供方的均衡系数确定目标服务提供方后触发目标服务提供方,从令牌桶中获取令牌,并分配给服务消费方发送的处理请求。
在一个实施例中,处理器执行计算机程序时还实现上述其他实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取服务提供方自身的设备状态信息,并基于设备状态信息确定令牌生成速率以及令牌桶的容量;
按照令牌生成速率生成令牌,并在令牌桶中令牌的数量少于令牌桶的容量的情况下,将令牌存储到令牌桶中;令牌用于指示服务提供方对接收到的处理请求进行处理;
基于令牌桶中令牌的数量与令牌桶的容量的比值,得到服务提供方的均衡系数,并向服务消费方发送均衡系数,以供服务消费方基于各服务提供方的均衡系数确定目标服务提供方后触发目标服务提供方,从令牌桶中获取令牌,并分配给服务消费方发送的处理请求。
在一个实施例中,处理器执行计算机程序时还实现上述其他实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取服务提供方自身的设备状态信息,并基于设备状态信息确定令牌生成速率以及令牌桶的容量;
按照令牌生成速率生成令牌,并在令牌桶中令牌的数量少于令牌桶的容量的情况下,将令牌存储到令牌桶中;令牌用于指示服务提供方对接收到的处理请求进行处理;
基于令牌桶中令牌的数量与令牌桶的容量的比值,得到服务提供方的均衡系数,并向服务消费方发送均衡系数,以供服务消费方基于各服务提供方的均衡系数确定目标服务提供方后触发目标服务提供方,从令牌桶中获取令牌,并分配给服务消费方发送的处理请求。
在一个实施例中,处理器执行计算机程序时还实现上述其他实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(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)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种负载均衡方法,其特征在于,所述方法包括:
获取服务提供方自身的设备状态信息,并基于所述设备状态信息确定令牌生成速率以及令牌桶的容量;
按照所述令牌生成速率生成令牌,并在所述令牌桶中令牌的数量少于所述令牌桶的容量的情况下,将所述令牌存储到所述令牌桶中;所述令牌用于指示所述服务提供方对接收到的处理请求进行处理;
基于所述令牌桶中令牌的数量与所述令牌桶的容量的比值,得到所述服务提供方的均衡系数,并向服务消费方发送所述均衡系数,以供所述服务消费方基于各服务提供方的均衡系数确定目标服务提供方后触发所述目标服务提供方,从令牌桶中获取令牌,并分配给所述服务消费方发送的处理请求。
2.根据权利要求1所述的方法,其特征在于,所述获取服务提供方自身的设备状态信息,包括:
获取服务提供方中的多个硬件当前的硬件使用率,并确定所述服务提供方当前针对处理请求的请求处理效率;
根据多个硬件使用率和所述请求处理效率,得到所述服务提供方当前的多个设备状态信息。
3.根据权利要求2所述的方法,其特征在于,所述基于所述设备状态信息确定令牌生成速率以及令牌桶的容量,包括:
获取各设备状态信息的权重系数,并基于各设备状态信息以及各设备状态信息的权重系数,确定令牌生成速率;
基于所述令牌生成速率以及预设的处理请求的处理周期,确定令牌桶的容量。
4.根据权利要求3所述的方法,其特征在于,所述获取各设备状态信息的权重系数,并基于各设备状态信息以及各设备状态信息的权重系数,确定令牌生成速率,包括:
基于各设备状态信息以及各设备状态信息的权重系数,确定服务提供方的处理资源;
确定服务提供方的处理资源与预先确定的单个处理请求的处理时间的比值,得到所述令牌生成速率。
5.根据权利要求1所述的方法,其特征在于,所述基于所述令牌桶中令牌的数量与所述令牌桶的容量的比值,得到所述服务提供方的均衡系数,并向服务消费方发送所述均衡系数的步骤包括:
将所述令牌桶中令牌的数量、所述令牌桶的容量发送至预设的注册中心,由所述注册中心基于所述令牌桶中令牌的数量与所述令牌桶的容量的比值,得到所述服务提供方的均衡系数,并向服务消费方发送所述均衡系数。
6.根据权利要求1所述的方法,其特征在于,在所述向服务消费方发送所述均衡系数之后,所述方法还包括:
接收所述服务消费方发送的处理请求,从所述令牌桶中获取令牌,并将所述令牌分配给所述处理请求;
当满足对接收到的处理请求进行响应的触发条件时,对接收到的处理请求进行响应,并在检测到所述接收到的处理请求中携带令牌的情况下,对所述接收到的处理请求进行处理。
7.一种负载均衡装置,其特征在于,所述装置包括:
获取模块,用于获取服务提供方自身的设备状态信息,并基于所述设备状态信息确定令牌生成速率以及令牌桶的容量;
令牌生成模块,用于按照所述令牌生成速率生成令牌,并在所述令牌桶中令牌的数量少于所述令牌桶的容量的情况下,将所述令牌存储到所述令牌桶中;所述令牌用于指示所述服务提供方对接收到的处理请求进行处理;
均衡处理模块,用于基于所述令牌桶中令牌的数量与所述令牌桶的容量的比值,得到所述服务提供方的均衡系数,并向服务消费方发送所述均衡系数,以供所述服务消费方基于各服务提供方的均衡系数确定目标服务提供方后触发所述目标服务提供方,从令牌桶中获取令牌,并分配给所述服务消费方发送的处理请求。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210957691.9A CN115334082A (zh) | 2022-08-10 | 2022-08-10 | 负载均衡方法、装置、计算机设备、存储介质和产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210957691.9A CN115334082A (zh) | 2022-08-10 | 2022-08-10 | 负载均衡方法、装置、计算机设备、存储介质和产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115334082A true CN115334082A (zh) | 2022-11-11 |
Family
ID=83920967
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210957691.9A Pending CN115334082A (zh) | 2022-08-10 | 2022-08-10 | 负载均衡方法、装置、计算机设备、存储介质和产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115334082A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115941610A (zh) * | 2022-12-09 | 2023-04-07 | 中联智慧农业股份有限公司 | 基于令牌桶算法的限流方法、限流装置及电子设备 |
CN116582497A (zh) * | 2023-04-21 | 2023-08-11 | 中国测绘科学研究院 | 一种单服务器条件下的高效gis服务自适应流量整形的方法 |
CN117294655A (zh) * | 2023-11-27 | 2023-12-26 | 深圳市杉岩数据技术有限公司 | 一种高可用分布式网关系统与管理方法 |
-
2022
- 2022-08-10 CN CN202210957691.9A patent/CN115334082A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115941610A (zh) * | 2022-12-09 | 2023-04-07 | 中联智慧农业股份有限公司 | 基于令牌桶算法的限流方法、限流装置及电子设备 |
CN116582497A (zh) * | 2023-04-21 | 2023-08-11 | 中国测绘科学研究院 | 一种单服务器条件下的高效gis服务自适应流量整形的方法 |
CN116582497B (zh) * | 2023-04-21 | 2024-01-23 | 中国测绘科学研究院 | 一种单服务器条件下的高效gis服务自适应流量整形的方法 |
CN117294655A (zh) * | 2023-11-27 | 2023-12-26 | 深圳市杉岩数据技术有限公司 | 一种高可用分布式网关系统与管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109218355B (zh) | 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法 | |
CN115334082A (zh) | 负载均衡方法、装置、计算机设备、存储介质和产品 | |
CN115328663B (zh) | 基于PaaS平台进行资源调度的方法、装置、设备和存储介质 | |
WO2010026362A1 (en) | Distributed data processing system | |
CN108900626B (zh) | 一种云环境下数据存储方法、装置及系统 | |
CN109933431B (zh) | 一种智能的客户端负载均衡方法及系统 | |
CN111506434B (zh) | 一种任务处理方法、装置及计算机可读存储介质 | |
US11044209B2 (en) | Asymmetric co-operative queue management for messages | |
CN109756429A (zh) | 带宽分配方法及设备 | |
CN108063814A (zh) | 一种负载均衡方法及装置 | |
CN112286623B (zh) | 一种信息处理方法及装置、存储介质 | |
CN111858656A (zh) | 一种基于分布式架构的静态数据的查询方法和设备 | |
CN115499513A (zh) | 数据请求的处理方法、装置、计算机设备和存储介质 | |
CN110046040B (zh) | 分布式任务处理方法及系统和存储介质 | |
CN114924888A (zh) | 资源配置方法、数据处理方法、装置、设备和存储介质 | |
CN114489463A (zh) | 动态调整存储卷qos的方法、装置及计算设备 | |
CN113992586A (zh) | 流量控制方法、装置、计算机设备和存储介质 | |
CN110968409A (zh) | 一种数据处理方法及装置 | |
CN114546279B (zh) | Io请求预测方法、装置、存储节点及可读存储介质 | |
CN114201306B (zh) | 基于负载均衡技术的多维地理空间实体分布方法及系统 | |
CN117493048B (zh) | 消息动态处理方法、装置、设备和介质 | |
CN116149798B (zh) | 云操作系统的虚拟机控制方法、装置以及存储介质 | |
CN116974731A (zh) | 磁盘负载均衡方法、装置和电子设备 | |
CN117640777A (zh) | 一种网关负载均衡调度方法及系统 | |
CN116545949A (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 |