CN112749015A - 负载均衡方法及装置 - Google Patents
负载均衡方法及装置 Download PDFInfo
- Publication number
- CN112749015A CN112749015A CN202110099214.9A CN202110099214A CN112749015A CN 112749015 A CN112749015 A CN 112749015A CN 202110099214 A CN202110099214 A CN 202110099214A CN 112749015 A CN112749015 A CN 112749015A
- Authority
- CN
- China
- Prior art keywords
- server
- connection
- tcp
- load balancing
- mark
- 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.)
- Granted
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/5083—Techniques for rebalancing the load in a distributed system
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本说明书提供一种负载均衡方法及装置,应用于负载均衡设备,负载均衡设备在收到访问请求的情况下,需要进行调度服务器,将每个服务器的当前连接数减去对服务器负载压力影响较小的TCP关闭连接阶段的连接的数量,得到修正连接数,并根据每个服务器的修正连接数进行负载均衡,使得负载均衡设备可以更加精确的根据每个服务器的负载状态,为当前连接请求分配服务器,从而更加充分利用了每个服务器的性能。
Description
技术领域
本说明书涉及计算机应用技术领域,尤其涉及一种负载均衡方法及装置。
背景技术
用户端在需要与服务端进行某些业务交互的情况下,可以向服务端发送访问请求,以使用户端和服务端之间建立通信连接。服务端具体可以包括负载均衡(LoadBalance,LB)设备与服务器集群,负载均衡设备接收客户端发送的访问请求时,从服务器集群中选择一个服务器与用户端建立通信连接,以实现负载均衡。
基于此,本发明提供一种更为有效的负载均衡方案。
发明内容
为克服相关技术中存在的缺少有效的负载均衡方案的问题,本说明书提供了一种负载均衡方法及装置。
根据本说明书实施例的第一方面,提供一种负载均衡方法,应用于服务端的负载均衡设备,所述服务端还包括由至少两个服务器组成的服务器集群;所述方法包括:
在收到用户端发送的访问请求的情况下,针对所述服务器集群中的每个服务器,确定该服务器当前的连接数,以及确定该服务器的当前处于关闭阶段的TCP连接的数量;
将该服务器的当前连接数,减去该服务器的当前处于关闭阶段的TCP连接的数量,得到该服务器的修正连接数;
根据所述服务器集群中每个服务器的修正连接数,选取负载压力最小的服务器,作为处理所述访问请求服务器。
根据本说明书实施例的第二方面,提供一种负载均衡装置,应用于服务端的负载均衡设备,所述服务端还包括由至少两个服务器组成的服务器集群;所述方法装置:
连接数确定模块,用于在收到用户端发送的访问请求的情况下,针对所述服务器集群中的每个服务器,确定该服务器当前的连接数,以及确定该服务器的当前处于关闭阶段的TCP连接的数量;
修正连接数确定模块,用于将该服务器的当前连接数,减去该服务器的当前处于关闭阶段的TCP连接的数量,得到该服务器的修正连接数;
服务器选取模块,用于根据所述服务器集群中每个服务器的修正连接数,选取负载压力最小的服务器,作为处理所述访问请求服务器。
根据本说明书实施例的第四方面,提供一种负载均衡设备,所述负载均衡设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本说明书实施例第一方面所述的负载均衡方法。
本说明书一个或多个实施例中,负载均衡设备在收到访问请求的情况下,需要进行服务器调度,将每个服务器的当前连接数减去对服务器负载压力影响较小的TCP关闭连接阶段的连接的数量,得到修正连接数,并根据每个服务器的修正连接数进行负载均衡,使得负载均衡设备可以更加精确的根据每个服务器的负载状态,为当前连接请求分配服务器,从而更加充分利用了每个服务器的性能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
图1是本说明书根据一示例性实施例示出的一种负载均衡方法的流程图。
图2是本说明书根据一实施例示出的一种负载均衡设备处理报文的方法的流程图。
图3是本说明书根据一实施例示出的会话老化的流程图。
图4是本说明书根据一示例性实施例示出的一种负载均衡装置的框图。
图5本说明书根据一示例性实施例示出的一种负载均衡装置所在负载均衡设备的一种硬件结构图。
具体实施方式
客户端需要与服务端进行业务交互的情况下,需要向服务端发送访问请求,以使得服务端可以与该客户端建立连接,并处理该连接对应的其他报文。其中,服务端可以包括负载均衡设备和服务器集群,负载均衡设备上部署有虚拟服务器(Virtual Server,VS),负责对外收发报文,VS引用了一个或多个服务器集群,每个服务器集群包括若干个真实服务器(RealServer,RS)。
VS在收到任一访问请求的情况下,需要基于负载均衡算法,将该访问请求发送给服务器集群中的选中的RS,并记录基于该访问请求建立的会话,与该RS的对应关系;VS在收到该访问请求对应的连接的其他报文时,可以根据记录的该连接对应会话与RS的对应关系,并将其他报文发往该连接对应的RS。
相关技术中,在VS收到访问请求的情况下,为了实现根据每个RS当前负载压力(处理性能)来决定由压力最小的RS处理新收到的访问请求的报文,通常会:根据每个RS当前的连接数(当前建立的连接的数量),将当前连接数最小的RS作为压力最小的RS,并让其来处理该访问请求;或,考虑到RS的性能不一定相同,根据每个RS当前的连接数和每个RS的性能表征值(表示服务器的性能大小,与服务器性能正相关)的商,将商最小的RS作为压力最小的RS,并让其来处理该访问请求。
但是通过分析发现,利用上述方法确定的连接数并不能很好地表征当前该RS的负载压力,这就导致上述方法选取的RS并不一定是压力最小的RS。通过分析发现,不同状态的连接所占用RS的内存是不同的,这就导致有些服务器的连接数很少,但是每个连接占用内存和CPU资源很多,该服务器的负载压力并不比其他服务器小,如果将该服务器作为压力最小的服务器是不合适的。
因此,考虑到对于传输控制协议(Transmission Control Protocol,TCP)连接来说,在TCP连接处于已建立阶段(established状态)时,需要占用业务内存和连接内存,占用较多的CPU资源的;而在TCP连接的关闭阶段,也就是TCP连接处于fin wait1状态、finwait2状态、closing状态、time wait状态、close wait状态、last ack状态和closed状态这7种状态时,该连接不会继续交互业务报文,并且该连接之前业务处理所占用的内存已经被释放,该连接不占用CPU资源,只占用较小的的连接内存(RS记录该连接所需的内存),对于RS来说,该连接不占用CPU资源,且所占用的内存较小,因此,该连接对服务器压力的影响也较小。
基于此,本说明书提出了一种负载均衡方法。本说明书一个或多个实施例中,负载均衡设备在收到访问请求的情况下,需要进行服务器调度,将每个服务器的当前连接数减去对服务器负载压力影响较小的TCP关闭连接阶段的连接的数量,得到修正连接数,并根据每个服务器的修正连接数进行负载均衡,使得负载均衡设备可以更加精确的根据每个服务器的负载状态,为当前连接请求分配服务器,从而更加充分利用了每个服务器的性能。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
接下来对本说明书实施例进行详细说明。
本说明书提出一种负载均衡方法,该方法应用于服务端的负载均衡设备,所述服务端还包括由至少两个服务器组成的服务器集群。
负载均衡设备上部署有VS,VS负责收发报文,VS引用服务器集群,服务器集群中有至少两个RS,下文中将RS称为服务器。与服务端进行交互的用户端可以是客户端,也可以是浏览器,可以是个人用户,也可以是企业用户,本说明书在此不做限定。负载均衡设备作为一个网络设备,不仅可以处理命中VS(目的IP地址为VS)的报文,也就是将命中VS的报文发送给服务器集群中选中的服务器,还可以作为一个转发设备,将命中VS的报文转发出去。
如图1所示,图1是本说明书根据一示例性实施例示出的一种负载均衡方法的流程图,所述方法包括:
步骤101,在收到用户端发送的访问请求的情况下,针对所述服务器集群中的每个服务器,确定该服务器当前的连接数,以及确定该服务器的当前处于关闭阶段的TCP连接的数量。
用户端发送访问请求,可以是TCP访问请求,也可以是用户数据包协议(UserDatagram Protocol,UDP)访问请求,也可以是其他访问请求,本申请在此不做限定。访问请求可以认为是一个连接对应的首包报文,比如TCP访问请求为TCP连接的第一次握手报文。用户端和服务端之间,通过该访问请求建立连接,该访问请求达到负载均衡设备时,负载均衡设备根据访问请求携带的五元组信息等,新建会话,存储该连接的报文交互等信息。对于服务器集群中的每个服务器来说,该服务器当前的连接数,指的是该服务器当前所有连接的数量,该数量不仅不包括TCP连接的数量,还包括其他所有连接的数量;该服务器的当前处于关闭阶段的TCP连接的数量中,TCP连接处于关闭阶段指的是TCP连接处于fin wait1状态、fin wait2状态、closing状态、time wait状态、close wait状态、last ack状态和closed状态这7种状态中任一状态。考虑到TCP关闭阶段传输的报文不携带负载,不占用服务器CPU资源,只占用较小的连接内存,对服务器的影响较小,因此在步骤102和103中,改变了原有的根据总的连接数确定压力最小的服务器的方案,选择根据计算的修正连接数确定压力最小的服务器。
步骤102,将该服务器的当前连接数,减去该服务器的当前处于关闭阶段的TCP连接的数量,得到该服务器的修正连接数。
将该服务器的修正连接数,替换原有的总的连接数,作为选取压力最小的服务器的依据。原有的方案中,按照总的连接数选取服务器,实际上是将每个连接占用的内存视为相同,但是TCP连接处于阶段的情况下,该连接占用的业务内存已经被释放,该连接不占用CPU资源,且该连接占用的内存远小于其他连接占用的内存,因此服务器的修正连接数,更能准确描述当前该服务器的负载压力。
步骤103,根据所述服务器集群中每个服务器的修正连接数,选取负载压力最小的服务器,作为处理所述访问请求服务器。
除了将负载压力最小的服务器作为处理该访问请求的服务器,还应该记录基于该访问请求建立的会话与选取的服务器之间的对应关系,该对应关系可以记录在会话表上。该访问请求对应的连接的其他报文,也应该由该服务器进行处理,在收到该访问请求的其他报文的情况下,应该根据收到的报文携带的五元组信息,查找会话表,在该会话表记录有处理该会话的服务器的情况下,将该报文发往记录的服务器进行处理。
其中,根据所述服务器集群中每个服务器的修正连接数,选取负载压力最小的服务器,可以是:根据所述服务器集群中每个服务器的修正连接数,选取修正连接数最小的服务器。此外,在服务器集群中包括至少两个性能不一致的服务器的情况下,根据所述服务器集群中每个服务器的修正连接数,选取负载压力最小的服务器,可以是:计算所述服务器集群中每个服务器的修正连接数与性能表征值的商,选取商最小的服务器;所述性能表征值与服务器性能正相关。
此外,考虑到由负载均衡设备自身记录各个服务器当前的连接数延时最小,较为方便,所述方法还包括:所述负载均衡设备动态记录所述服务器集群中每个服务器的当前连接数,包括:针对所述服务器集群中的任一服务器的当前连接数,在向该服务器发送任一访问请求的情况下,将该服务器的当前连接数加1;在该服务器的任一连接对应的会话老化的情况下,将该服务器的当前连接数减1。
也就是说,在负载均衡设备选中处理访问请求的服务器,并向该服务器发送访问请求后,将该服务器当前连接数加1。在负载均衡设备上有任一会话需要老化的情况下,查找处理该会话的报文的服务器,将该服务器的当前连接数减1并老化该会话。这样,实现了负载均衡设备对每个服务器当前的连接数的动态记录。
基于相似考虑,所述负载均衡设备动态记录所述服务器集群中每个服务器的当前处于关闭阶段的TCP连接的数量,以及每个TCP连接具有的第一标记或第二标记;所述第一标记用于表征该TCP连接处于关闭阶段,所述第二标记用于表征该TCP连接未处于关闭阶段;动态记录所述服务器集群中每个服务器的当前处于关闭阶段的TCP连接的数量,具体包括:针对所述服务器集群中任一服务器的当前处于关闭阶段的TCP连接的数量,执行:在收到该服务器的连接对应的TCP支持的关闭连接报文的情况下,判断该TCP连接是否具有第一标记;在该TCP连接不具有第一标记的情况下,将该TCP连接标记置为第一标记,并将该服务器的当前处于关闭阶段的TCP连接的数量加1;在该服务器的任一TCP连接对应的会话老化的情况下,判断该TCP连接是否具有第一标记;在该TCP连接具有第一标记的情况下,将该服务器的当前处于关闭阶段的TCP连接的数量减1。
其中,第一标记和第二标记不能同时存在,第一标记和第二标记可以通过标志位表示,标志位为0的情况下,为第一标记,标志位为1的情况下,为第二标记。通过添加第一标记,可以在需要老化会话时,判断是否需要更改该服务器的TCP连接数;也可以保证,每一个连接只会被关闭阶段的TCP连接的数量的记录一次,也就是说,保证了在负载均衡设备再次收到四次挥手的报文的情况下,可以根据已有的第一标记,不修改该服务器当前的关闭阶段的TCP连接的数量,这样,记录的当前的关闭阶段的TCP连接的数量更准确。
接下来将从收到报文后负载均衡设备处理方法,和会话老化方法两个方面来描述本方案,
如图2所示,图2是本说明书根据一实施例示出的一种负载均衡设备处理报文的方法的流程图,包括以下步骤:
步骤201,收到命中虚服务的报文。
其中,该方法的执行主体为负载均衡设备,负载均衡设备上部署有虚拟服务器,也就是虚服务,虚服务引用的服务器集群包括若干个服务器。命中虚服务的报文即该报文的目的地址为虚服务的地址。
步骤202,该报文是否存在对应的会话,若该报文存在对应的会话,则执行步骤207,若该报文不存在对应的会话,则执行步骤203。
可以通过查找会话表,查看会话表中是否存在包含该报文五元组信息的会话,如果存在,则存在该报文对应的会话,如果不存在,则该报文是访问请求,需要为该报文新建会话。
步骤203,新建会话。
步骤204,获取修正连接数,基于修正连接数,从服务器集群中选取一个服务器。
修正连接数的获取方法,以及从服务器集群中选取服务器的方法在前一实施例中已经详细的叙述过了,在此不再赘述。
步骤205,在该报文对应的会话上记录该会话与该服务器的关联关系;将该服务器的当前的连接数加1。
步骤206,将该报文发送给关联的服务器。
步骤207,是否为TCP挥手报文,在该报文为TCP挥手报文的情况下,执行步骤208,若该报文非TCP挥手报文,则执行步骤206。
其中,TCP挥手报文指的是TCP连接中交互的四次挥手报文,四次挥手报文包括TCPfin报文和TCP ack报文。此外,在报文是TCP报文的情况下,需要根据接收到的报文,实时更新会话的状态。
步骤208,该报文对应的会话是否包含第一标记,若该报文对应的会话包含第一标记,则执行步骤206,若该报文对应的会话不包含第一标记,则执行步骤209。
其中,第一标记同前一实施例中的第一标记所表示的含义以及作用均相同,在此不再赘述。
步骤209,将标志位设置为第一标记,并将该会话关联的服务器的当前关闭连接状态的连接的数量加1。
通过上述方法,在收到命中虚服务的报文的情况下,若没有找到该报文对应的会话,则新建会话,并基于预设的负载均衡算法,为该会话分配一个压力较小的服务器,这样实现了负载均衡,并在收到报文的同时,实时更新每个服务器的当前连接数,与每个服务器当前的关闭阶段的TCP连接的数量。
如图3所示,图3是本说明书根据一实施例示出的会话老化的流程图,包括以下步骤:
步骤301,遍历会话表,查找会话表中五元组包含虚服务地址的会话。
步骤302,针对查找到的每个会话,判断该会话是否需要老化,若该会话需要老化,则执行步骤303。
步骤303,该会话关联的服务器的当前连接数减1。
步骤304,该会话是否为包含第一标记,若该会话包含第一标记,则执行步骤305,若该会话不包括第一标记,则执行步骤306。
步骤305,将该会话关联的服务器的当前的关闭阶段的TCP连接的数量减1。
步骤306,老化会话。
上述方法在会话需要老化时,实时更新每个服务器的的当前的连接数与每个服务器当前的关闭阶段的TCP连接的数量,这样使得计算的修正连接数更为准确。
与前述负载均衡方法的实施例相对应,本说明书还提供了一种负载均衡装置及其所应用的终端的实施例。
如图4所示,图4是本说明书根据一示例性实施例示出的一种装置的框图,应用于服务端的负载均衡设备,所述服务端还包括由至少两个服务器组成的服务器集群;所述方法装置:
连接数确定模块410,用于在收到用户端发送的访问请求的情况下,针对所述服务器集群中的每个服务器,确定该服务器当前的连接数,以及确定该服务器的当前处于关闭阶段的TCP连接的数量。
修正连接数确定模块420,用于将该服务器的当前连接数,减去该服务器的当前处于关闭阶段的TCP连接的数量,得到该服务器的修正连接数。
服务器选取模块430,用于根据所述服务器集群中每个服务器的修正连接数,选取负载压力最小的服务器,作为处理所述访问请求服务器。
其中,服务器选取模块430,具体用于:根据所述服务器集群中每个服务器的修正连接数,选取修正连接数最小的服务器,作为与所述用户端建立TCP连接的服务器。
此外,所述装置还包括:连接数动态记录模块440,用于所述负载均衡设备动态记录所述服务器集群中每个服务器的当前处于关闭阶段的TCP连接的数量,以及每个TCP连接具有的第一标记或第二标记;所述第一标记用于表征该TCP连接处于关闭阶段,所述第二标记用于表征该TCP连接未处于关闭阶段。
所述连接数动态记录模块440,具体用于:针对所述服务器集群中任一服务器的当前处于关闭阶段的TCP连接的数量,在收到该服务器的连接对应的TCP支持的关闭连接报文的情况下,判断该TCP连接是否具有第一标记;在该TCP连接不具有第一标记的情况下,将该TCP连接标记置为第一标记,并将该服务器的当前处于关闭阶段的TCP连接的数量加1;在该服务器的任一TCP连接对应的会话老化的情况下,判断该TCP连接是否具有第一标记;在该TCP连接具有第一标记的情况下,将该服务器的当前处于关闭阶段的TCP连接的数量减1。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
如图5所示,图5示出了负载均衡装置所在负载均衡设备的一种硬件结构图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本说明书实施例第一方面所述的负载均衡方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
Claims (10)
1.一种负载均衡方法,其特征在于,应用于服务端的负载均衡设备,所述服务端还包括由至少两个服务器组成的服务器集群;所述方法包括:
在收到用户端发送的访问请求的情况下,针对所述服务器集群中的每个服务器,确定该服务器当前的连接数,以及确定该服务器的当前处于关闭阶段的传输控制协议TCP连接的数量;
将该服务器的当前连接数,减去该服务器的当前处于关闭阶段的TCP连接的数量,得到该服务器的修正连接数;
根据所述服务器集群中每个服务器的修正连接数,选取负载压力最小的服务器,作为处理所述访问请求服务器。
2.如权利要求1所述方法,其特征在于,根据所述服务器集群中每个服务器的修正连接数,选取负载压力最小的服务器,具体包括:
根据所述服务器集群中每个服务器的修正连接数,选取修正连接数最小的服务器。
3.如权利要求1所述方法,其特征在于,在服务器集群中包括至少两个性能不一致的服务器的情况下,根据所述服务器集群中每个服务器的修正连接数,选取负载压力最小的服务器,具体包括:
计算所述服务器集群中每个服务器的修正连接数与性能表征值的商,选取商最小的服务器;所述性能表征值与服务器性能正相关。
4.如权利要求1所述方法,其特征在于,所述方法还包括:
所述负载均衡设备动态记录所述服务器集群中每个服务器的当前连接数,包括:
针对所述服务器集群中的任一服务器的当前连接数,在向该服务器发送任一访问请求的情况下,将该服务器的当前连接数加1;在该服务器的任一连接对应的会话老化的情况下,将该服务器的当前连接数减1。
5.如权利要求1所述方法,其特征在于,所述方法还包括:
所述负载均衡设备动态记录所述服务器集群中每个服务器的当前处于关闭阶段的TCP连接的数量,以及每个TCP连接具有的第一标记或第二标记;所述第一标记用于表征该TCP连接处于关闭阶段,所述第二标记用于表征该TCP连接未处于关闭阶段;
动态记录所述服务器集群中每个服务器的当前处于关闭阶段的TCP连接的数量,具体包括:
针对所述服务器集群中任一服务器的当前处于关闭阶段的TCP连接的数量,执行:
在收到该服务器的连接对应的TCP支持的关闭连接报文的情况下,判断该TCP连接是否具有第一标记;在该TCP连接不具有第一标记的情况下,将该TCP连接标记置为第一标记,并将该服务器的当前处于关闭阶段的TCP连接的数量加1;
在该服务器的任一TCP连接对应的会话老化的情况下,判断该TCP连接是否具有第一标记;在该TCP连接具有第一标记的情况下,将该服务器的当前处于关闭阶段的TCP连接的数量减1。
6.一种负载均衡装置,其特征在于,应用于服务端的负载均衡设备,所述服务端还包括由至少两个服务器组成的服务器集群;所述装置:
连接数确定模块,用于在收到用户端发送的访问请求的情况下,针对所述服务器集群中的每个服务器,确定该服务器当前的连接数,以及确定该服务器的当前处于关闭阶段的TCP连接的数量;
修正连接数确定模块,用于将该服务器的当前连接数,减去该服务器的当前处于关闭阶段的TCP连接的数量,得到该服务器的修正连接数;
服务器选取模块,用于根据所述服务器集群中每个服务器的修正连接数,选取负载压力最小的服务器,作为处理所述访问请求服务器。
7.如权利要求6所述装置,其特征在于,所述服务器选取模块,具体用于:
根据所述服务器集群中每个服务器的修正连接数,选取修正连接数最小的服务器,作为与所述用户端建立TCP连接的服务器。
8.如权利要求6所述装置,其特征在于,所述装置还包括:
连接数动态记录模块,用于所述负载均衡设备动态记录所述服务器集群中每个服务器的当前处于关闭阶段的TCP连接的数量,以及每个TCP连接具有的第一标记或第二标记;所述第一标记用于表征该TCP连接处于关闭阶段,所述第二标记用于表征该TCP连接未处于关闭阶段;
所述连接数动态记录模块,具体用于:
针对所述服务器集群中任一服务器的当前处于关闭阶段的TCP连接的数量,在收到该服务器的连接对应的TCP支持的关闭连接报文的情况下,判断该TCP连接是否具有第一标记;在该TCP连接不具有第一标记的情况下,将该TCP连接标记置为第一标记,并将该服务器的当前处于关闭阶段的TCP连接的数量加1;在该服务器的任一TCP连接对应的会话老化的情况下,判断该TCP连接是否具有第一标记;在该TCP连接具有第一标记的情况下,将该服务器的当前处于关闭阶段的TCP连接的数量减1。
9.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1至5中任一项所述的负载均衡方法。
10.一种负载均衡设备,其特征在于,所述负载均衡设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1至5中任一项所述的负载均衡方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110099214.9A CN112749015B (zh) | 2021-01-25 | 2021-01-25 | 负载均衡方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110099214.9A CN112749015B (zh) | 2021-01-25 | 2021-01-25 | 负载均衡方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112749015A true CN112749015A (zh) | 2021-05-04 |
CN112749015B CN112749015B (zh) | 2023-07-25 |
Family
ID=75653096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110099214.9A Active CN112749015B (zh) | 2021-01-25 | 2021-01-25 | 负载均衡方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112749015B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113489803A (zh) * | 2021-07-15 | 2021-10-08 | 深圳竹云科技有限公司 | 负载均衡方法、终端以及网关服务器 |
CN114244888A (zh) * | 2021-12-10 | 2022-03-25 | 珠海格力电器股份有限公司 | 设备与服务器的连接方法、装置与连接系统 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6996615B1 (en) * | 2000-09-29 | 2006-02-07 | Cisco Technology, Inc. | Highly scalable least connections load balancing |
US20090077233A1 (en) * | 2006-04-26 | 2009-03-19 | Ryosuke Kurebayashi | Load Control Device and Method Thereof |
CN102917055A (zh) * | 2012-10-18 | 2013-02-06 | 华为技术有限公司 | 虚拟机在线迁移的方法、装置和终端设备 |
CN102932485A (zh) * | 2012-11-20 | 2013-02-13 | 无锡城市云计算中心有限公司 | 服务器连接状态的查询方法和装置 |
CN103188277A (zh) * | 2011-12-27 | 2013-07-03 | 中国电信股份有限公司 | 负载能耗管理系统、方法和服务器 |
US9432305B1 (en) * | 2013-06-26 | 2016-08-30 | Amazon Technologies, Inc. | Connection redistribution in load-balanced systems |
WO2016206433A1 (zh) * | 2015-06-25 | 2016-12-29 | 中兴通讯股份有限公司 | 服务器负载均衡的方法及装置 |
WO2017012471A1 (zh) * | 2015-07-20 | 2017-01-26 | 中兴通讯股份有限公司 | 负载均衡处理方法及装置 |
CN106713163A (zh) * | 2016-12-29 | 2017-05-24 | 杭州迪普科技股份有限公司 | 一种调配服务器负载的方法及装置 |
CN111147389A (zh) * | 2018-11-06 | 2020-05-12 | 营利度富信息系统(上海)有限公司 | Tcp长连接服务器负载均衡系统及方法 |
CN112217735A (zh) * | 2020-09-08 | 2021-01-12 | 网宿科技股份有限公司 | 信息同步方法与负载均衡系统 |
-
2021
- 2021-01-25 CN CN202110099214.9A patent/CN112749015B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6996615B1 (en) * | 2000-09-29 | 2006-02-07 | Cisco Technology, Inc. | Highly scalable least connections load balancing |
US20090077233A1 (en) * | 2006-04-26 | 2009-03-19 | Ryosuke Kurebayashi | Load Control Device and Method Thereof |
CN103188277A (zh) * | 2011-12-27 | 2013-07-03 | 中国电信股份有限公司 | 负载能耗管理系统、方法和服务器 |
CN102917055A (zh) * | 2012-10-18 | 2013-02-06 | 华为技术有限公司 | 虚拟机在线迁移的方法、装置和终端设备 |
CN102932485A (zh) * | 2012-11-20 | 2013-02-13 | 无锡城市云计算中心有限公司 | 服务器连接状态的查询方法和装置 |
US9432305B1 (en) * | 2013-06-26 | 2016-08-30 | Amazon Technologies, Inc. | Connection redistribution in load-balanced systems |
WO2016206433A1 (zh) * | 2015-06-25 | 2016-12-29 | 中兴通讯股份有限公司 | 服务器负载均衡的方法及装置 |
WO2017012471A1 (zh) * | 2015-07-20 | 2017-01-26 | 中兴通讯股份有限公司 | 负载均衡处理方法及装置 |
CN106713163A (zh) * | 2016-12-29 | 2017-05-24 | 杭州迪普科技股份有限公司 | 一种调配服务器负载的方法及装置 |
CN111147389A (zh) * | 2018-11-06 | 2020-05-12 | 营利度富信息系统(上海)有限公司 | Tcp长连接服务器负载均衡系统及方法 |
CN112217735A (zh) * | 2020-09-08 | 2021-01-12 | 网宿科技股份有限公司 | 信息同步方法与负载均衡系统 |
Non-Patent Citations (3)
Title |
---|
WALTENEGUS DARGIE等: "Analysis of the Power and Hardware Resource Consumption of Servers under Different Load Balancing Policies", 《2012 IEEE FIFTH INTERNATIONAL CONFERENCE ON CLOUD COMPUTING》, pages 772 - 778 * |
刘柳: "LVS负载均衡系统的研究与实现", 《中国优秀硕士学位论文全文数据库》, no. 1, pages 139 - 8 * |
运城达内教育官网: "软件应用网络连接都包含了哪些指标要求", pages 1 - 4, Retrieved from the Internet <URL:《https://ych.tedu.cn/news/406607.html》> * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113489803A (zh) * | 2021-07-15 | 2021-10-08 | 深圳竹云科技有限公司 | 负载均衡方法、终端以及网关服务器 |
CN114244888A (zh) * | 2021-12-10 | 2022-03-25 | 珠海格力电器股份有限公司 | 设备与服务器的连接方法、装置与连接系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112749015B (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10129332B2 (en) | Load balancing of distributed services | |
CN106657180B (zh) | 用于云服务的信息传输方法、装置、终端设备及系统 | |
CN112738220B (zh) | 服务器集群的管理方法、负载均衡方法和负载均衡设备 | |
CN112749015B (zh) | 负载均衡方法及装置 | |
CN111064804B (zh) | 网络访问方法和装置 | |
CN109343862B (zh) | 应用的资源数据的调度方法及装置 | |
CN114205342A (zh) | 服务调试的路由方法、电子设备、介质及程序产品 | |
CN110650209A (zh) | 实现负载均衡的方法和装置 | |
CN113179295B (zh) | 报文处理方法及装置 | |
CN110677307A (zh) | 一种服务监测方法、装置、设备和存储介质 | |
CN113687940B (zh) | 负载均衡方法、装置及物理机 | |
CN108541000B (zh) | 一种检测网络连接的方法、介质以及设备 | |
CN109905486B (zh) | 一种应用程序识别展示方法和装置 | |
CN113301004A (zh) | 数据处理方法、装置、通信方法和单网卡虚拟机 | |
JP2018013994A (ja) | プログラム、コンピュータ及び情報処理方法 | |
CN115514800A (zh) | 一种设备网络连接方法、装置、电子设备、服务器及系统 | |
CN108920277B (zh) | 业务执行系统、方法及装置、业务隔离系统 | |
CN113765805B (zh) | 基于调用的通信方法、装置、存储介质及设备 | |
CN114979236B (zh) | 数据传输方法、装置、存储介质以及电子设备 | |
CN114968269A (zh) | 项目灰度发布方法、装置、电子设备及存储介质 | |
JP2018101184A (ja) | 情報処理システム、データ送信方法及び情報処理装置 | |
CN114666265B (zh) | 数据传输方法、装置、计算设备及介质 | |
CN113630422B (zh) | 一种基于边缘节点的网络安全数据处理方法和系统 | |
CN110913027B (zh) | 域名解析方法和装置 | |
CN116939057A (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 |