CN114168312A - 一种分布式集群负载均衡方法、装置及存储介质 - Google Patents
一种分布式集群负载均衡方法、装置及存储介质 Download PDFInfo
- Publication number
- CN114168312A CN114168312A CN202110877505.6A CN202110877505A CN114168312A CN 114168312 A CN114168312 A CN 114168312A CN 202110877505 A CN202110877505 A CN 202110877505A CN 114168312 A CN114168312 A CN 114168312A
- Authority
- CN
- China
- Prior art keywords
- node
- service
- client
- network bandwidth
- processing
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开提供了一种分布式集群负载均衡方法、装置及存储介质,用于解决在负载信息同步周期内,负载分配不均衡的解决技术问题。本公开所采用的负载均衡策略既考虑了当前同步周期内各节点初始的负载信息和状态信息,还通过预设的负载均衡算法在同步周期内对业务IP的分配进行更精细的调整,从而避免在同步周期内将过多的客户端业务请求分配到同一节点上,造成段时间内的负载不均衡的情况发生。
Description
技术领域
本公开涉及技术领域,尤其涉及一种分布式集群负载均衡方法、装置及存储介质。
背景技术
分布式文件***通过网络互连多个松散耦合的节点,形成一个可以分布在多个地点的计算机集群,通过网络进行节点间通信和数据传输,解决了传统文件***的存储容量和性能瓶颈问题,具有资源共享、数据备份、故障切换、可扩展性等优点,有利于多***立的服务器分担单节点负荷。
客户端访问分布式文件***时具有随机性,某些服务器在某些时刻可能负载过重,而其他服务器可能处于空闲状态,造成性能下降和资源浪费。通过应用负载均衡技术,根据一个或者多个影响因素,将客户端请求均衡到多个可以承载业务的服务器,以分担整个***的负载压力,提高业务处理能力,实现分布式文件***中各节点业务的相对均衡,可应用的业务包括但不限于通用网络共享文件***(Common Internet File System,CIFS)业务、文件传输协议(File Transfer Protocol,FTP)业务、网络文件***(Network FileSystem,NFS)业务等。
客户端向分布式集群发出请求,域名服务器(Domain Name Server,DNS)根据对应的负载均衡策略,选择可提供业务访问的服务器,客户端最终通过IP地址与对应的服务器建立连接,从而访问分布式存储***,进行业务操作。
目前简单轮询、最小连接法是最常用的负载均衡策略。简单轮询这种策略会将收到的客户端请求轮流分配给可提供服务的服务器。最小连接数策略根据获取的服务器连接状态信息,选择一个连接数最少的节点分配任务。由于连接状态是会断开或者发生故障迁移,因此需要动态获取***中每个服务器的客户端连接数,为保证DNS服务器响应时间,一般会选择周期性采集状态信息。
对于各个节点处理性能不同的***而言,简单轮询策略无法根据服务器的承受能力来分配负载。当大量客户端短时间通过域名同时访问***,如果选择最小连接数策略,在负载均衡的数据采集周期内,服务器负载状态信息不更新,导致在该时间段内的客户端请求,都会根据对应的策略与采集的数据计算得出相同的业务IP,客户端会通过同一个业务IP挂载至同一个节点,导致负载不均衡。
发明内容
有鉴于此,本公开提供一种分布式集群负载均衡方法、装置及存储介质,用于解决在负载信息同步周期内,负载分配不均衡的解决技术问题。
图1为本公开提供的一种分布式集群负载均衡方法,该方法应用于主节点,所述方法包括:
步骤101.根据预设的负载均衡策略,周期性采集节点自身的负载信息和状态信息;
步骤102.周期性同步主节点和各从节点的负载信息和状态信息,并初始化本地维护的各节点的负载信息和状态信息;
步骤103.在负载信息和状态信息的同步周期内,基于预设的负载均衡策略为客户端的业务请求分配处理节点,将处理节点的业务IP地址反馈给客户端;在每次分配时,所述预设的负载均衡策略采用平滑加权轮询算法对各节点的负载权重值进行调整。
基于本公开一实施例,进一步地,所述预设的负载均衡策略为连接数均衡策略;所述负载信息为客户端连接数;所述状态信息包括节点的可用状态、业务IP地址;所述基于预设的负载均衡策略为客户端的业务请求分配处理节点,将处理节点的业务IP地址反馈给客户端的方法为:
获取本地维护的当前各节点的客户端连接数,选择当前客户端连接数最小的节点作为当前业务请求的处理节点;
增加处理节点对应的客户端连接数;
将处理节点的业务IP地址反馈给客户端。
基于本公开一实施例,进一步地,所述预设的负载均衡策略为网络带宽均衡策略;所述负载信息为节点上的业务网卡的实时可用网络带宽;所述状态信息包括节点的可用状态、业务IP地址;
所述基于预设的负载均衡策略为客户端的业务请求分配处理节点,将处理节点的业务IP地址反馈给客户端的方法为:
用当前同步周期内同步的各节点的业务网卡的可用网络带宽和状态信息初始化当前同步周期内各节点的初始网络带宽权重值和状态信息;
计算当前同步周期内所有节点的初始网络带宽权重值之和;
在为客户端的业务请求分配处理节点之前,将各节点的当前网络带宽权重值置为该节点当前网络带宽权重值与该节点初始网络带宽权重值之和;
选择当前网络带宽权重值最大的节点作为处理节点;
将处理节点的当前网络带宽权重值置为当前网络带宽权重值与所述所有节点的初始网络带宽权重值之和的差;
获取处理节点的业务IP,并将处理节点的业务IP反馈给客户端。
基于本公开一实施例,进一步地,当处理节点上有多个网卡时,按照轮询机制从处理节点上选择一个网卡,若所选网卡上绑定有多个业务IP时,随机选择网卡上的一个业务IP作为所述处理节点的业务IP,将所选择的业务IP反馈给客户端。
基于本公开一实施例,进一步地,所述预设的负载均衡策略为计算资源均衡策略;所述负载信息为节点上的可用计算资源,所述计算资源为可用内存或CPU可利用率。
图2为本公开一实施例提供的一种分布式集群负载均衡装置结构示意图,该装置200中的各功能模块可以采用软件、硬件或软硬件相结合的方式实现。当多个硬件设备共同实施本公开的技术方案时,由于各硬件设备之间相互协作的目的是共同实现本发明目的,一方的动作和处理结果确定了另一方的动作执行的时机及可能获得的结果,因此,可视为各执行主体之间具有相互协作关系,各执行主体之间具有相互指挥和控制关系。该装置200包括:
信息采集模块201,用于根据预设的负载均衡策略,周期性采集节点自身的负载信息和状态信息;
信息同步模块202,用于周期性同步主节点和各从节点的负载信息和状态信息,并初始化本地维护的各节点的负载信息和状态信息;
策略计算模块203,用于在负载信息和状态信息的同步周期内,基于预设的负载均衡策略为客户端的业务请求分配处理节点,将处理节点的业务IP地址反馈给客户端;在每次分配时,所述预设的负载均衡策略采用平滑加权轮询算法对各节点的负载权重值进行调整。
基于本公开一实施例,进一步地,所述预设的负载均衡策略为连接数均衡策略;所述负载信息为客户端连接数;所述状态信息包括节点的可用状态、业务IP地址;
所述策略计算模块获取本地维护的当前各节点的客户端连接数,选择当前客户端连接数最小的节点作为当前业务请求的处理节点;增加处理节点对应的客户端连接数;以及将处理节点的业务IP地址反馈给客户端。
基于本公开一实施例,进一步地,所述预设的负载均衡策略为网络带宽均衡策略;所述负载信息为节点上的业务网卡的实时可用网络带宽;所述状态信息包括节点的可用状态、业务IP地址;
所述策略计算模块包括:
初始化模块,用于用当前同步周期内同步的各节点的业务网卡的可用网络带宽和状态信息初始化当前同步周期内各节点的初始网络带宽权重值和状态信息;
综合计算模块,用于计算当前同步周期内所有节点的初始网络带宽权重值之和;
前置处理模块,用于在为客户端的业务请求分配处理节点之前,将各节点的当前网络带宽权重值置为该节点当前网络带宽权重值与该节点初始网络带宽权重值之和;
处理节点分配模块,用于选择当前网络带宽权重值最大的节点作为处理节点;
后置处理模块,用于在为客户端的业务请求分配处理节点之后,将处理节点的当前网络带宽权重值置为当前网络带宽权重值与所述所有节点的初始网络带宽权重值之和的差;
反馈模块,用于获取处理节点的业务IP,并将处理节点的业务IP反馈给客户端。
本公开所采用的负载均衡策略既考虑了当前同步周期内各节点初始的负载信息和状态信息,还通过预设的负载均衡算法在同步周期内对业务IP的分配进行更精细的调整,从而避免在同步周期内将过多的客户端业务请求分配到同一节点上,造成段时间内的负载不均衡的情况发生。
附图说明
为了更加清楚地说明本公开实施例或者现有技术中的技术方案,下面将对本公开实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本公开实施例的这些附图获得其他的附图。
图1为本公开提供的一种分布式集群负载均衡方法的步骤流程图;
图2为本公开提供的一种分布式集群负载均衡装置结构示意图;
图3为本公开一实施例提供的分布式文件***的结构示意图;
图4为本公开一实施例提供的分布式集群负载均衡方法的步骤流程图;
图5为本公开一实施例提供的分布式集群负载均衡方法的步骤流程图;
图6为本公开一实施例提供的电子设备的结构示意图。
具体实施方式
在本公开实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本公开实施例。本公开实施例中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。本公开中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了解决在分布式文件***中简单轮询和最小连接数负载均衡算法存在的技术问题,本公开提出了一种分布式集群负载均衡方法,本公开结合静态和动态负载均衡算法,能够在短时间内大量客户端访问的情况下更加均衡的分配负载,并能够按照服务器负载能力,将客户端业务请求均衡分配到对应服务节点。
图3为本公开一实施例提供的分布式文件***的结构示意图,该分布式文件***包括3个节点,其中主节点为Master A,从节点分别为Slave B和Slave C。本公开提供的分布式集群负载均衡方法可应用于该分布式文件***中的任意一个节点。
在该分布式文件***中,由主节点接收客户端发送的业务请求,主节点基于本公开提供的负载均衡策略为请求分配提供服务的节点,将请求中的域名解析为所分配的节点的业务IP地址,将业务IP地址反馈给客户端。
为实现本公开的负载均衡目的,本公开提供了一种分布式集群负载均衡装置,主节点Master A中,该装置所包括的模块和功能如下:
信息采集模块,用于根据预设的负载均衡策略,周期性采集节点自身的负载信息和状态信息;负载信息包括但不限于客户端连接信息、可用网络带宽、可用内存容量等,状态信息包括节点状态、业务IP地址等。
信息同步模块,用于周期性同步主节点和各从节点的负载信息和状态信息,并初始化本地维护的各节点的负载信息和状态信息;
策略计算模块,用于在负载信息和状态信息的同步周期内,基于预设的负载均衡策略为客户端的业务请求分配处理节点,将处理节点的业务IP地址反馈给客户端;在每次分配时,所述预设的负载均衡策略采用平滑加权轮询算法对各节点的负载权重值进行调整;
本公开策略计算模块所采用的负载均衡策略既考虑了当前同步周期内各节点初始的负载信息和状态信息,还通过预设的负载均衡算法在同步周期内对业务IP的分配进行更精细的调整,避免在同步周期内将过多的客户端业务请求分配到同一节点上,造成段时间内的负载不均衡的情况发生。
在本公开一实施例中,可根据业务类型,将各节点分成不同的业务组,每个业务组配置各自的负载均衡策略;域名***为不同的业务组分配不同的域名,客户端可通过发送包括不同域名的业务请求,分别访问各业务组内的节点。
图4为本公开一实施例提供的分布式集群负载均衡方法的步骤流程图,该方法采用连接数均衡策略,该策略选择以客户端连接数作为各节点负载均衡条件的策略,适用于服务器性能相近的集群。该方法应用于主节点,包括:
步骤410.各节点采集自身当前的客户端连接数和状态信息;
每个节点上的信息采集模块实时或周期性采集自身所在节点的负载信息和状态信息。该实施例中,负载信息为客户端连接数,状态信息包括但不限于服务器节点的可用状态、业务IP地址(简称业务IP)等。集群中各节点实时的客户端连接数wi=conni,可由信息采集模块读取节点当前的业务会话连接数来获取。
步骤411.主节点周期性同步主节点和各从节点的客户端连接数和状态信息,并初始化本地维护的各节点的客户端连接数和状态信息;
主节点以预设的同步周期为单位周期性同步各节点的信息采集模块采集的客户端连接数和状态信息;初始化本地维护或存储于数据库中的当前同步周期内各节点的客户端连接数和状态信息,此处初始化指清除原来保存的各节点的负载信息和状态信息,以新同步的各节点的负载信息和状态信息替换本地维护的已老化的值。
主节点同步负载信息和状态信息可采用主动方式也可采用被动方式。例如,主动方式下,在同步周期到时,主节点的信息同步模块主动向各节点的信息同步模块发送同步请求,各节点的信息同步模块接收到同步请求后调用信息采集模块采集自身的负载信息和状态信息,然后通过同步响应消息将自身的负载信息和状态信息反馈给主节点的信息同步模块。在各节点时间精确同步的情况下,也可采用被动方式,例如,各节点的信息采集模块周期性采集自身的负载信息和状态信息,在同步周期到时,主动向主节点上报自身的负载信息和状态信息,主节点的信息同步模块被动接收各节点上报的负载信息和状态信息即可。
步骤420.在当前同步周期内,主节点接收客户端的业务请求,对业务请求中的域名进行解析;
主节点上的域名解析模块(例如DNS组件)在进行域名解析的时候,调用主节点上的策略计算模块对业务请求中的域名对应的业务IP进行决策分配,由策略计算模块基于预设的负载均衡策略确定出最终的业务IP反馈给域名解析模块后,再由域名解析模块将业务IP反馈客户端。
步骤421.主节点获取本地维护的当前各节点的客户端连接数,选择当前客户端连接数最小的节点作为当前业务请求的处理节点;
该实施例中,主节点采用的预设的负载均衡策略是基于客户端连接数的轮询策略,以各节点的客户端连接数作为负载权重,将同步周期内接收到的业务请求分配到负载权重小的节点上进行处理。该负载均衡策略适用于各节点的服务器性能相近的集群。
主节点上的策略计算模块以当前同步周期内负载信息和状态信息的初始化值为初始值,在当前同步周期内,每次分配业务IP后,增加负责处理当前业务请求的处理节点的客户连接数wi,以降低其对应的分配权重。
当处理节点上有多个网卡时,按照轮询机制从处理节点上选择一个网卡,若所选网卡上绑定有多个业务IP,可随机选择网卡上的一个业务IP,将所选择的业务IP反馈给客户端。在选择业务IP时,还需要根据节点的状态信息进行选择,只有节点运行状态、网卡状态正常时,才可参与业务IP的分配,不正常的网卡和节点不参与分配。
步骤422.增加处理节点对应的客户端连接数;
策略计算模块可将理节点对应的客户连接数wi加1,以降低其对应的分配权重。
在客户端就某业务初次发起业务请求时,主节点为该客户端的业务请求分配一个业务IP后,客户端通过所分配的业务IP建立与处理节点的业务会话连接,从而获得所需的业务服务。当一个已经建立业务会话连接的客户端再次发送业务请求时,由于其已获得了相应的业务IP且已建立的业务会话,因此不需要对请求再次进行域名解析和业务IP的分配,主节点直接根据会话信息将请求转发给对应的处理节点即可。
步骤423.选择处理节点的一个业务IP,将所选择的业务IP反馈给客户端。
该实施例中,步骤410和步骤411基于负载信息和状态信息的同步周期对其维护的各节点的客户端连接数和状态信息进行初始化,初始化后的值作为下一次采集周期到来之前,各节点的客户端连接数权重值和状态信息的初始值。在负载信息的同步周期内,主节点基于步骤420至步骤423为业务请求的分配进行负载均衡,从而避免在负载信息的同步周期内这一较短的时间范围内大量客户端业务请求被集中分配给某个节点,使得各节点的负载更加均衡。
图5为本公开一实施例提供的分布式集群负载均衡方法的步骤流程图,该方法采用网络带宽均衡策略,该策略选择以网络带宽的权重作为各节点负载均衡核心要素,该策略适用于各节点的网络带宽相近的集群。该方法应用于主节点,包括:
步骤510.各节点采集自身当前的业务网卡的实时可用网络带宽和状态信息;
每个节点上的信息采集模块实时或周期性采集自身所在节点的负载信息和状态信息。该实施例中,负载信息为该服务器节点上的业务网卡的实时可用网络带宽wi=bandwidthi,状态信息包括但不限于服务器节点的可用状态、业务IP地址等。
步骤511.主节点周期性同步主节点和各从节点的业务网卡的实时可用网络带宽和状态信息,并初始化本地维护的各节点的业务网卡的实时可用网络带宽权重值和状态信息;
主节点以预设的同步周期为单位周期性同步各节点的信息采集模块采集的业务网卡的实时可用网络带宽和状态信息;初始化本地维护或存储于数据库中的当前同步周期内各节点的业务网卡的实时可用网络带宽和状态信息。此处初始化指清除原来保存的各节点的负载信息和状态信息,以新同步的各节点的负载信息和状态信息替换老化的值。主节点的信息同步模块每隔一个同步周期刷新一次本地维护的各节点的负载信息和状态信息,并将同步的值作为初始值来计算各节点的初始网络带宽权重值。可采用各节点业务网卡的可用网络带宽的比值作为各节点的初始网络带宽权重值,例如在当前同步周期内同步获得的3个节点A、B、C的业务网卡的可用网络带宽分别为32G、64G、48G,则这3个节点的初始网络带宽权重值比值为2:4:3。
步520.在当前同步周期内,主节点接收客户端的业务请求,对业务请求中的域名进行解析;
主节点上的域名解析模块在进行域名解析的时候,调用主节点上的策略计算模块对业务请求中的域名对应的业务IP进行决策分配,由策略计算模块基于网络带宽均衡策略确定出最终的业务IP反馈给域名解析模块后,再由域名解析模块将业务IP反馈客户端。
步骤521.在进行业务IP分配时,采用平滑加权轮询算法对本地维护的各节点的网络带宽权重值进行处理,然后选择当前网络带宽权重值最大的节点作为当前业务请求的处理节点;
该实施例中,主节点采用网络带宽均衡策略,以各节点的业务网卡当前可用带宽为权重参数来进行负载均衡,将同步周期内接收到的业务请求分配到可用带宽最大的节点上进行处理。在每次分配业务IP前,需要采用平滑加权轮询算法对本地维护的各节点的网络带宽权重值进行处理,使得当前分配的处理节点的网络带宽权重值降低,提高其它节点的分配概率,从而使得各节点基于自己的网络带宽权重值的大小都有机会被分配给客户端进行业务处理。
以下举例说明主节点上的策略计算模块基于网络带宽均衡策略进行业务IP的过程,在该策略中使用了如下平滑加权轮询算法对各节点的网络带宽权重值进行处理:
(1)initweighti表示第i个节点的初始网络带宽权重值,由每个同步周期同步获取的节点i的业务网卡的可用带宽来决定,currentweighti表示第i个节点当前网络带宽权重值;
(2)计算集群中所有节点有效网络带宽权重值之和totalweight;
(3)在每次分配业务IP前,刷新每个节点当前网络带宽权重值为currentweighti=currentweighti+initweighti,然后选出currentweight最大的一个节点作为处理节点;初始情况下即当前同步周期内第一次分配业务IP之前,currentweight初始化为0。
(4)减小处理节点的当前网络带宽权重值为currentweighti=currentweighti–totalweight。
为了更加清楚地说明采用上述平滑加权轮询算法后业务IP分配的效果,以下以3个节点为例进行说明。假设三个节点分别为A、B、C,三个节点的当前网络的权重值分别为{2,4,3},权重之和totalweight为9。在每次分配业务IP之前,首先计算各节点当前网络带宽权重值currentweight,计算完后从各节点中选择currentweight最大的节点作为当前分配的业务请求的处理节点,被选中的处理节点的权重值需减去totalweight,作为下一次业务IP分配时进行平滑加权轮询处理的基础。以下表1示例了在一个同步周期内,采用平滑加权轮询算法进行9次业务IP分配过程中各节点的网络带宽权重值的取值情况:
表1
请求序号 | 请求前currentweight的值 | 选择节点 | 请求后currentweight的值 |
1 | {2,4,3} | B | {2,-5,3} |
2 | {4,-1,6} | C | {4,-1,-3} |
3 | {6,3,0} | A | {-3,3,0} |
4 | {-1,7,3} | B | {-1,-2,3} |
5 | {1,2,6} | C | {1,2,-3} |
6 | {3,6,0} | B | {3,-3,0} |
7 | {5,1,3} | A | {-4,1,3} |
8 | {-2,5,6} | C | {-2,5,-3} |
9 | {0,9,0} | B | {0,0,0} |
基于表1统计可知,9次业务请求中,节点A被选择2次,节点B被选择4次,节点C被选择3次,该实施例所采用的平滑加权轮询算法能够很好的根据每个节点的网络带宽权重进行不连续地、均衡地分配负载。
步骤522.选择处理节点的一个业务IP,将所选择的业务IP反馈给客户端。
该实施例中,步骤510和步骤511基于负载信息和状态信息的同步周期对其维护的各节点的网络带宽权重值和状态信息进行初始化,初始化后的值作为下一个同步周期到来之前各节点的网络带宽权重值和状态信息的初始值,在负载信息的同步周期内,主节点基于步骤520至步骤522为业务请求的分配进行负载均衡,从而避免在负载信息的同步周期内这一较短的时间范围内大量客户端业务请求被集中分配给某个节点,使得各节点的负载更加均衡。
以上基于各节点业务网卡可用带宽的负载均衡策略的原理,同样也可应用于基于其它网络或计算资源,例如基于各节点可用计算资源(可用内存、CPU可利用率等),本公开不做赘述。
图6为本公开一实施例提供的一种电子设备结构示意图,该设备600包括:诸如中央处理单元(CPU)的处理器610、通信总线620、通信接口640以及存储介质630。其中,处理器610与存储介质630可以通过通信总线620相互通信。存储介质630内存储有计算机程序,当该计算机程序被处理器610执行时即可实现本公开提供的方法的各步骤的功能。
其中,存储介质可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。另外,存储介质还可以是至少一个位于远离前述处理器的存储装置。处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
应当认识到,本公开的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术,包括配置有计算机程序的非暂时性存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机***通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。此外,可按任何合适的顺序来执行本公开描述的过程的操作,除非本公开另外指示或以其他方式明显地与上下文矛盾。本公开描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机***的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本公开的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本公开所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本公开所述的方法和技术编程时,本公开还包括计算机本身。
以上所述仅为本公开的实施例而已,并不用于限制本公开。对于本领域技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (10)
1.一种分布式集群负载均衡方法,其特征在于,该方法应用于主节点,所述方法包括:
根据预设的负载均衡策略,周期性采集节点自身的负载信息和状态信息;
周期性同步主节点和各从节点的负载信息和状态信息,并初始化本地维护的各节点的负载信息和状态信息;
在负载信息和状态信息的同步周期内,基于预设的负载均衡策略为客户端的业务请求分配处理节点,将处理节点的业务IP地址反馈给客户端;在每次分配时,所述预设的负载均衡策略采用平滑加权轮询算法对各节点的负载权重值进行调整。
2.根据权利要求1所述的方法,其特征在于,所述预设的负载均衡策略为连接数均衡策略;所述负载信息为客户端连接数;所述状态信息包括节点的可用状态、业务IP地址;
所述基于预设的负载均衡策略为客户端的业务请求分配处理节点,将处理节点的业务IP地址反馈给客户端的方法为:
获取本地维护的当前各节点的客户端连接数,选择当前客户端连接数最小的节点作为当前业务请求的处理节点;
增加处理节点对应的客户端连接数;
将处理节点的业务IP地址反馈给客户端。
3.根据权利要求1所述的方法,其特征在于,所述预设的负载均衡策略为网络带宽均衡策略;所述负载信息为节点上的业务网卡的实时可用网络带宽;所述状态信息包括节点的可用状态、业务IP地址;
所述基于预设的负载均衡策略为客户端的业务请求分配处理节点,将处理节点的业务IP地址反馈给客户端的方法为:
用当前同步周期内同步的各节点的业务网卡的可用网络带宽和状态信息初始化当前同步周期内各节点的初始网络带宽权重值和状态信息;
计算当前同步周期内所有节点的初始网络带宽权重值之和;
在为客户端的业务请求分配处理节点之前,将各节点的当前网络带宽权重值置为该节点当前网络带宽权重值与该节点初始网络带宽权重值之和;
选择当前网络带宽权重值最大的节点作为处理节点;
将处理节点的当前网络带宽权重值置为当前网络带宽权重值与所述所有节点的初始网络带宽权重值之和的差;
获取处理节点的业务IP,并将处理节点的业务IP反馈给客户端。
4.根据权利要求1所述的方法,其特征在于,
当处理节点上有多个网卡时,按照轮询机制从处理节点上选择一个网卡,若所选网卡上绑定有多个业务IP时,随机选择网卡上的一个业务IP作为所述处理节点的业务IP,将所选择的业务IP反馈给客户端。
5.根据权利要求1所述的方法,其特征在于,所述预设的负载均衡策略为计算资源均衡策略;所述负载信息为节点上的可用计算资源,所述计算资源为可用内存或CPU可利用率。
6.一种分布式集群负载均衡装置,其特征在于,该装置包括:
信息采集模块,用于根据预设的负载均衡策略,周期性采集节点自身的负载信息和状态信息;
信息同步模块,用于周期性同步主节点和各从节点的负载信息和状态信息,并初始化本地维护的各节点的负载信息和状态信息;
策略计算模块,用于在负载信息和状态信息的同步周期内,基于预设的负载均衡策略为客户端的业务请求分配处理节点,将处理节点的业务IP地址反馈给客户端;在每次分配时,所述预设的负载均衡策略采用平滑加权轮询算法对各节点的负载权重值进行调整。
7.根据权利要求6所述的装置,其特征在于,所述预设的负载均衡策略为连接数均衡策略;所述负载信息为客户端连接数;所述状态信息包括节点的可用状态、业务IP地址;
所述策略计算模块获取本地维护的当前各节点的客户端连接数,选择当前客户端连接数最小的节点作为当前业务请求的处理节点;增加处理节点对应的客户端连接数;以及将处理节点的业务IP地址反馈给客户端。
8.根据权利要求6所述的装置,其特征在于,所述预设的负载均衡策略为网络带宽均衡策略;所述负载信息为节点上的业务网卡的实时可用网络带宽;所述状态信息包括节点的可用状态、业务IP地址;
所述策略计算模块包括:
初始化模块,用于用当前同步周期内同步的各节点的业务网卡的可用网络带宽和状态信息初始化当前同步周期内各节点的初始网络带宽权重值和状态信息;
综合计算模块,用于计算当前同步周期内所有节点的初始网络带宽权重值之和;
前置处理模块,用于在为客户端的业务请求分配处理节点之前,将各节点的当前网络带宽权重值置为该节点当前网络带宽权重值与该节点初始网络带宽权重值之和;
处理节点分配模块,用于选择当前网络带宽权重值最大的节点作为处理节点;
后置处理模块,用于在为客户端的业务请求分配处理节点之后,将处理节点的当前网络带宽权重值置为当前网络带宽权重值与所述所有节点的初始网络带宽权重值之和的差;
反馈模块,用于获取处理节点的业务IP,并将处理节点的业务IP反馈给客户端。
9.根据权利要求6所述的装置,其特征在于,所述预设的负载均衡策略为计算资源均衡策略;所述负载信息为节点上的可用计算资源,所述计算资源为可用内存或CPU可利用率。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序当被处理器执行时实施如权利要求1至5中任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110877505.6A CN114168312A (zh) | 2021-07-31 | 2021-07-31 | 一种分布式集群负载均衡方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110877505.6A CN114168312A (zh) | 2021-07-31 | 2021-07-31 | 一种分布式集群负载均衡方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114168312A true CN114168312A (zh) | 2022-03-11 |
Family
ID=80476482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110877505.6A Pending CN114168312A (zh) | 2021-07-31 | 2021-07-31 | 一种分布式集群负载均衡方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114168312A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115150263A (zh) * | 2022-06-17 | 2022-10-04 | 浙江中控技术股份有限公司 | 一种服务集群的部署方法 |
WO2024124641A1 (zh) * | 2022-12-13 | 2024-06-20 | 奇安信科技集团股份有限公司 | 一种集群负载均衡的方法和装置、电子设备和存储介质 |
-
2021
- 2021-07-31 CN CN202110877505.6A patent/CN114168312A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115150263A (zh) * | 2022-06-17 | 2022-10-04 | 浙江中控技术股份有限公司 | 一种服务集群的部署方法 |
WO2024124641A1 (zh) * | 2022-12-13 | 2024-06-20 | 奇安信科技集团股份有限公司 | 一种集群负载均衡的方法和装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109547517B (zh) | 一种带宽资源调度方法和装置 | |
CN108667748B (zh) | 一种控制带宽的方法、装置、设备和存储介质 | |
CN109933431B (zh) | 一种智能的客户端负载均衡方法及*** | |
CN108499100B (zh) | 一种基于边缘计算的云游戏错误恢复方法及*** | |
WO2018166111A1 (zh) | 基于集中控制器及dci设备的负载均衡的方法、***、电子装置及计算机可读存储介质 | |
US9071612B2 (en) | Service providing system | |
CN109672711B (zh) | 一种基于反向代理服务器Nginx的http请求处理方法及*** | |
CN114168312A (zh) | 一种分布式集群负载均衡方法、装置及存储介质 | |
WO2003100648A1 (en) | Parallel processing system | |
CN108933829A (zh) | 一种负载均衡方法及装置 | |
CN113032431B (zh) | 一种基于数据库中间件集群的高可用客户端负载均衡方法 | |
EP3218807A1 (en) | Method and system for real-time resource consumption control in a distributed computing environment | |
US20050102387A1 (en) | Systems and methods for dynamic management of workloads in clusters | |
CN105721552A (zh) | 一种基于dns实现动态负载均衡的方法及dns*** | |
CN107689878A (zh) | 基于命名调度的tcp长连接负载均衡*** | |
CN107645540A (zh) | web应用***的负载均衡方法 | |
CN112711479A (zh) | 服务器集群的负载均衡***、方法、装置和存储介质 | |
KR101402367B1 (ko) | 전화 호출 관리 방법 및 호출 관리 시스템 | |
CN112506647A (zh) | 有状态服务器负载均衡的方法、***、装置和存储介质 | |
CN108282526B (zh) | 双集群间服务器动态分配方法及*** | |
Dubois et al. | Mycocloud: Elasticity through self-organized service placement in decentralized clouds | |
Vashistha et al. | Comparative study of load balancing algorithms | |
CN111338750A (zh) | 执行节点的压力调节方法、装置、服务器及存储介质 | |
CN109413117B (zh) | 分布式数据计算方法、装置、服务器及计算机存储介质 | |
CN112543150A (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 |