CN117319406B - 负载均衡方法、装置、设备及存储介质 - Google Patents

负载均衡方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN117319406B
CN117319406B CN202311571701.6A CN202311571701A CN117319406B CN 117319406 B CN117319406 B CN 117319406B CN 202311571701 A CN202311571701 A CN 202311571701A CN 117319406 B CN117319406 B CN 117319406B
Authority
CN
China
Prior art keywords
servers
response time
load
determining
server
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
Application number
CN202311571701.6A
Other languages
English (en)
Other versions
CN117319406A (zh
Inventor
吴远洋
王翊心
张庆勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Huayao Technology Co ltd
Beijing Infosec Technologies Co Ltd
Original Assignee
Beijing Huayao Technology Co ltd
Beijing Infosec Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Huayao Technology Co ltd, Beijing Infosec Technologies Co Ltd filed Critical Beijing Huayao Technology Co ltd
Priority to CN202311571701.6A priority Critical patent/CN117319406B/zh
Publication of CN117319406A publication Critical patent/CN117319406A/zh
Application granted granted Critical
Publication of CN117319406B publication Critical patent/CN117319406B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明实施例提供一种负载均衡方法、装置、设备及存储介质,该方法应用于负载均衡设备中对应于目标处理核心的线程,包括:负载均衡设备在接收到客户端消息时,首先确定多个服务器当前各自对应的业务连接数、响应时间因子以及响应时间变化趋势系数,根据多个服务器当前各自对应的业务连接数、响应时间因子以及响应时间变化趋势系数,确定多个服务器当前各自对应的负载系数,进而选出合适的目标服务器并将访问请求转发给目标服务器,以此提升负载均衡的准确性和可靠性,进而提升服务器的系统性能。

Description

负载均衡方法、装置、设备及存储介质
技术领域
本发明涉及互联网技术领域,尤其涉及一种负载均衡方法、装置、设备及存储介质。
背景技术
负载均衡是将客户端请求分摊到多个服务器上执行,由多个服务器共同完成工作任务,以达到负载分担,优化资源使用,避免单点过载的目的。
目前,现有负载均衡方法一般采用最小连接数算法或者最短响应时间算法,负载均衡算法比较单一,评估得到的多个服务器的负载均衡不够精准。
发明内容
本发明实施例提供一种负载均衡方法、装置、设备及存储介质,用于提升负载均衡的准确性,进而提升服务器的系统性能。
第一方面,本发明实施例提供一种负载均衡方法,所述方法包括:
接收客户端发送的访问请求;
确定多个服务器当前各自对应的业务连接数、响应时间因子以及响应时间变化趋势系数,所述负载均衡设备与所述多个服务器通信连接;
根据所述多个服务器当前各自对应的业务连接数、响应时间因子以及响应时间变化趋势系数,确定所述多个服务器当前各自对应的负载系数;
根据所述多个服务器当前各自对应的负载系数,确定目标服务器;
将所述访问请求转发给所述目标服务器。
第二方面,本发明实施例提供一种负载均衡装置,包括:
接收模块,用于接收客户端发送的访问请求;
确定模块,用于确定多个服务器当前各自对应的业务连接数、响应时间因子以及响应时间变化趋势系数,所述负载均衡设备与所述多个服务器通信连接;根据所述多个服务器当前各自对应的业务连接数、响应时间因子以及响应时间变化趋势系数,确定所述多个服务器当前各自对应的负载系数;根据所述多个服务器当前各自对应的负载系数,确定目标服务器;
转发模块,用于将所述访问请求转发给所述目标服务器。
第三方面,本发明实施例提供一种电子设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第一方面所述的负载均衡方法。
第四方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现如第一方面所述的负载均衡方法。
本发明实施例提供了一种负载均衡方法,应用于负载均衡设备中对应于目标处理核心的线程,负载均衡设备中包含至少一个处理核心,每个处理核心对应有一线程,目标处理核心是至少一个处理核心中的任一个,负载均衡设备与多个服务器通信连接。当目标处理核心的线程接收客户端发送的访问请求时,首先确定多个服务器当前各自对应的业务连接数、响应时间因子以及响应时间变化趋势系数,根据多个服务器当前各自对应的业务连接数、响应时间因子以及响应时间变化趋势系数,确定多个服务器当前各自对应的负载系数,最后根据多个服务器当前各自对应的负载系数,确定目标服务器,将客户端发送的上述访问请求转发至目标服务器。在上述过程中,服务器当前对应的业务连接数反映了该服务器当前的并发业务负载状态,服务器当前对应的响应时间因子作为服务器的一个动态性能指标,反映了该服务器当前业务处理速度,而服务器当前对应的响应时间变化趋势系数则体现了该服务器并发业务负载的变化趋势。因此,根据多个服务器当前各自对应的业务连接数、响应时间因子以及响应时间变化趋势系数,确定所述多个服务器当前各自对应的负载系数,能同时均衡考虑服务器当前的业务负载状态、动态处理性能以及业务负载的变化趋势,进而更准确的评估服务器当前对应的负载状态,从而根据服务器当前对应的负载状态,确定合适的目标服务器,将客户端消息转发给目标服务器,提升负载均衡的准确性,进而提升服务器的系统性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图:
图1为本发明实施例提供的一种负载均衡方法的流程图;
图2为本发明实施例提供的一种负载均衡方法的应用场景示意图;
图3为本发明实施例提供的一种负载均衡方法的流程图;
图4为本发明实施例提供的一种负载均衡装置的结构示意图;
图5为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
需要说明的是,本发明实施例中所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
下面将通过具体实施例对本发明进行详细的解释和说明。
图1为本发明实施例提供的一种负载均衡方法的流程图。该方法由负载均衡设备执行,负载均衡设备连接多个服务器,如图1所示,该方法包括:
101、接收客户端发送的访问请求。
102、确定多个服务器当前各自对应的业务连接数、响应时间因子以及响应时间变化趋势系数。
103、根据多个服务器当前各自对应的业务连接数、响应时间因子以及响应时间变化趋势系数,确定多个服务器当前各自对应的负载系数。
104、根据多个服务器当前各自对应的负载系数,确定目标服务器。
105、将访问请求转发给目标服务器。
在本发明实施例中,负载均衡设备一般会包含多个核心(CPUCore),该方法可以应用于负载均衡设备中对应于目标处理核心的线程,负载均衡设备中包含的每个处理核心对应有一线程,目标处理核心是至少一个处理核心中的任一个。
其中,在一可选实施例中,多个服务器对外呈现为同一个虚拟IP地址,客户端可以触发访问该虚拟IP地址的访问请求,也就是说,对于客户端来说,不区分各个服务器的真实物理IP地址。负载均衡设备相当于是由多个服务器构成的服务集群的入口,客户端触发的访问请求会发送至该负载均衡设备。可以结合图2来理解负载均衡设备中不同核心与多个服务器的对应关系。
图2为本发明实施例提供的一种负载均衡方法的应用场景示意图,如图2所示,客户端1、客户端2和客户端3通过同一个虚拟IP地址发送访问请求以请求某一特定服务,多个服务器共同提供该特定服务,客户端触发的访问请求通过同一个虚拟IP地址首先发送到负载均衡设备上,负载均衡设备包括3个处理核心,每个处理核心对应有一线程,负载均衡设备根据设定的业务规则将客户端1、客户端2和客户端3的访问请求分配到不同的目标处理核心对应的线程进行处理。目标处理核心对应的线程接收客户端发送的访问请求,对通信连接的多个服务器进行负载状态判断。
在本发明实施例中,负载均衡设备通过如下方法,对多个服务器分别进行负载状态判断:
首先,每个线程确定多个服务器当前各自对应的业务连接数、响应时间因子以及响应时间变化趋势系数,负载均衡设备与多个服务器通信连接。
其中,服务器当前各自对应的业务连接数为服务器当前正在处理的客户端的连接数,即服务器当前正在处理的客户端的特定业务类型的连接数。具体来说,业务连接数可以是指网站的HTTP连接数或TCP连接数、数据库的连接数、邮件服务器的SMTP连接数,以及应用服务器的用户连接数,取决于服务器所提供的业务类型。举例来说,对于一个网站服务器,业务连接数可以表示当前正在处理的用户访问网站的HTTP连接数或TCP连接数,每个用户通过浏览器发起的HTTP请求都会建立一个HTTP连接,一个或多个HTTP连接对应一个TCP连接,服务器需要同时处理多个连接来响应用户的请求;对于一个数据库服务器,业务连接数可以表示当前正在处理的客户端与数据库的连接数,每个客户端应用程序需要与数据库建立连接来执行查询、插入、更新等操作,服务器需要同时处理多个连接来处理这些请求;对于一个应用服务器来说,业务连接数可以表示当前服务器的用户连接数,每个客户端用户访问服务器进行业务操作或逻辑处理,服务器需要同时处理多个客户端用户的这些请求。服务器的业务连接数反映了该服务器当前的业务负载状态,一般地,服务器当前的业务连接数越大,服务器需要处理的业务就越多,其对应的业务负载相对会越大;服务器当前的业务连接数越少,服务器需要处理的业务就越少,其对应的业务负载相对会越小。
在一可选实施例中,目标线程以设定周期周期性获取多个服务器各自对应的业务连接数,在接收到客户端发送的访问请求时,根据临近的周期时刻所获取到的多个服务器各自对应的业务连接数,确定多个服务器当前各自对应的业务连接数。显然,目标线程也可以在接收到客户端发送的访问请求时,获取多个服务器当前各自对应的业务连接数,目标线程获取多个服务器各自对应的业务连接数的获取时机可以根据多个服务器组成的服务集群的负载状态以及实际需求来设定。
服务器当前对应的响应时间因子作为服务器的一个动态性能指标,服务器当前对应的响应时间因子越大,说明服务器对请求的响应时间越长,响应时间因子反映了该服务器当前业务处理速度。可以将服务器当前对访问请求的即时响应时间作为服务器当前对应的响应时间因子;也可以将服务器在当前临近的一段时间内对多次访问请求的即时响应时间的均值作为服务器当前对应的响应因子。
另外,服务器当前对应的响应时间变化趋势系数则通过当前临近两次服务器访问请求的响应时间来确定该服务器负载状态的变化趋势及变化幅度。
由上可知,根据多个服务器当前各自对应的业务连接数、响应时间因子以及响应时间变化趋势系数,确定多个服务器当前各自对应的负载系数,以此均衡考虑服务器当前的业务负载状态、动态处理性能以及业务负载的变化趋势,进而更准确的评估服务器当前对应的负载系数,其中,多个服务器各自对应的负载系数表征了多个服务器当前各自对应的负载状态。
在一可选实施例中,多个服务器当前各自对应的负载系数按照如下方法进行确定:根据多个服务器当前各自对应的业务连接数确定多个服务器当前各自对应的第一负载系数,根据多个服务器当前各自对应的响应时间因子确定多个服务器当前各自对应的第二负载系数,根据多个服务器当前各自对应的响应时间变化趋势系数确定多个服务器当前各自对应的第三负载系数,根据同一服务器当前对应的第一负载系数、第二负载系数、以及第三负载系数,确定多个服务器当前各自对应的负载系数。或者,
根据多个服务器当前各自对应的业务连接数确定多个服务器当前各自对应的第一负载系数,根据多个服务器当前各自对应的响应时间因子和响应时间变化趋势系数确定多个服务器当前各自对应的第二负载系数,根据同一服务器当前对应的第一负载系数和第二负载系数,确定多个服务器当前各自对应的负载系数。
综上,本发明实施例中,根据多个服务器当前各自对应的业务连接数、响应时间因子以及响应时间变化趋势系数,至少将业务连接数与响应时间因子作为同等重要的因素并进行结合,以确定多个服务器当前各自对应的负载系数,能均衡评估业务连接数和响应时间对服务器负载状态的影响,提升对服务器当前的负载评估的准确性。
最后,根据多个服务器当前各自对应的负载系数,确定目标服务器。可以将多个服务器当前对应的负载系数最小的服务器,确定为目标服务器;也可以将多个服务器当前对应的负载系数在设定阈值内的任一服务器,确定为目标服务器,将访问请求转发给目标服务器。
其中,负载均衡设备中的每个核心对应的线程独立确定多个服务器当前各自对应的业务连接数、响应时间因子以及响应时间变化趋势系数,以减少线程之间的读写冲突,提升线程之间负载均衡的灵活性。
图3为本发明实施例提供的一种负载均衡方法的流程图,该方法由负载均衡设备执行,负载均衡设备连接多个服务器,如图3所示,该方法包括:
301、接收客户端发送的访问请求。
302、确定多个服务器当前各自对应的业务连接数、响应时间因子以及响应时间变化趋势系数。
303、根据多个服务器当前各自对应的业务连接数,确定多个服务器当前各自对应的第一负载系数;根据多个服务器当前各自对应的响应时间因子,确定多个服务器当前各自对应的第二负载系数;根据多个服务器当前各自对应的响应时间变化趋势系数,分别对多个服务器各自对应的第一负载系数和第二负载系数进行加权处理;根据多个服务器各自对应的加权处理后的第一负载系数和多个服务器各自对应的加权处理后的第二负载系数,确定多个服务器当前各自对应的负载系数。
304、根据多个服务器当前各自对应的负载系数,确定目标服务器。
305、将访问请求转发给目标服务器。
在本发明实施例中,负载均衡设备一般会包含多个处理核心,负载均衡设备与多个服务器通信连接,负载均衡设备中的每个处理核心对应的线程与多个服务器均可进行通信,每个处理核心对应的线程各自独立确定多个服务器当前各自对应的业务连接数、响应时间因子和响应时间变化趋势系数。其中,目标服务器为多个服务器中的任一个,目标线程为目标处理核心对应的线程。
上述实施例已经对目标线程确定多个服务器当前各自对应的业务连接数的方法进行了介绍,在此不再赘述。下面将对目标线程确定多个服务器当前各自对应的响应时间因子以及响应时间变化趋势系数的具体方法进行详细介绍。
在一可选实施例中,目标线程通过如下方法确定多个服务器当前各自对应的响应时间因子。目标线程获取多个服务器各自对应的上一响应时间因子;确定多个服务器当前各自对应的即时响应时间;以设定的加权系数分别对同一服务器对应的上一响应时间因子和即时响应时间进行加权求和处理,以得到多个服务器当前各自对应的响应时间因子。可以理解的是,随着时间的推移,目标线程重复执行上述步骤,以确定多个服务器当前各自对应的响应时间因子,上一响应时间因子即为各服务器上一次确定的响应时间因子。一般地,受网络传输时延的影响,目标服务器对应响应时间可能会存在一定的波动性,因此,同时根据同一服务器对应的上一响应时间因子和即时响应时间,共同确定该服务器当前对应的响应时间因子,即通过将同一服务器对应的上一响应时间因子和即时响应时间进行加权求和处理的方式确定多个服务器当前各自对应的响应时间因子,能够消除噪声,降低波动性,这使得确定的服务器对应的响应时间因子更加准确和可靠。这里仅是对多个服务器当前各自对应的响应时间因子的确定方法提供了一种实施例,而该确定方法所执行的时机并不受该实施例的限制。比如,目标线程可以在接收到客户端的访问消息时,执行上述方法,以确定多个服务器当前各自对应的响应时间因子。目标线程也可以在预设时刻根据上述方法确定多个服务器各自对应的响应时间因子并实时更新,以便在接收到客户端的访问消息时,根据实时更新的多个服务器各自对应的响应时间因子确定多个服务器当前各自对应的响应时间因子。
在一可选实施例中,确定服务器当前各自对应的即时响应时间有多种方式,具体地:在基于设定周期确定的目标时刻向多个服务器分别发送测试请求,以及,根据多个服务器分别针对测试请求反馈的测试响应确定多个服务器当前各自对应的第一即时响应时间,其中,访问请求的接收时刻临近目标时刻。可以理解的是,目标线程采用周期性机制确定服务器各自对应的即时响应时间,采用周期性机制时,目标线程在任一周期时刻发送测试请求给多个服务器,其中,周期可以基于多个服务器各自对应的软硬件能力以及业务场景进行设置,测试请求可以是PING包请求,HTTP访问请求,FTP访问请求,数据库查询请求等,测试请求命令类型与多个服务器所提供服务的业务类型相关,不同业务类型的服务器,可以采用不同的测试请求命令。一般地,从发送测试请求的时刻开始,到接收到多个服务器各自对测试请求反馈的测试响应为止,目标线程将这个过程所耗费的时间确定为多个服务器各自对应的即时响应时间,即时响应时间完整地记录了在周期时刻多个服务器各自对应的处理访问请求的时间。目标线程在接收到客户端的访问请求时,则根据多个服务器分别针对目标时刻发送的测试请求反馈的测试响应确定多个服务器当前各自对应的第一即时响应时间,该目标时刻为一个周期时刻,且访问请求的接收时刻临近该目标时刻,换句话说,就是根据客户端访问请求的接收时刻之前,多个服务器分别针对目标线程在最近一个周期时刻发送的测试请求反馈的测试响应,确定多个服务器当前各自对应的第一即时响应时间。因此,采用周期性机制时,目标线程在收到客户端的访问请求时,能根据已经获取到多个服务器当前各自对应的第一即时响应时间,快速确定多个服务器当前各自对应的即时响应时间,提升对多个服务器负载均衡判断效率以及访问请求的转发效率。
除了上述周期性机制,目标线程还可以通过下述被动触发机制确定多个服务器当前各自对应的即时响应时间。目标线程根据多个服务器分别针对上一访问请求反馈的访问响应确定多个服务器当前各自对应的第二即时响应时间,其中,上一访问请求是指在访问请求之前分别转发至多个服务器的访问请求。目标线程每次在转发客户端发送的访问请求给多个服务器中的任一个时,会同时确定该服务器针对该客户端发送的访问请求的即时响应时间,进而,目标进程根据第二即时响应时间确定多个服务器当前各自对应的即时响应时间。显然,被动触发机制是基于对真实的客户端访问请求的响应时间的统计,采用被动触发的方式,目标线程不需要额外的预留资源去频繁统计多个服务器各自对应的即时响应时间,减少目标线程的资源占用。
进一步地,可以同时结合周期性机制和被动触发机制来确定目标时刻多个服务器各自对应的即时响应时间。此时,目标线程同时启动周期性机制和被动触发机制两种方法,即:目标线程在基于设定周期确定的目标时刻向多个服务器分别发送测试请求,以及,根据多个服务器分别针对测试请求反馈的测试响应确定多个服务器当前各自对应的第一即时响应时间,其中,访问请求的接收时刻临近目标时刻;同时,目标线程根据多个服务器分别针对上一访问请求反馈的访问响应确定多个服务器当前各自对应的第二即时响应时间,其中,上一访问请求是指在访问请求之前分别转发至多个服务器的访问请求。进而,目标线程根据第一即时响应时间或第二即时响应时间,确定多个服务器当前各自对应的即时响应时间。可以理解的是,目标服务器根据上述周期性机制和被动触发机制实时地确定多个服务器各自对应的即时响应时间,若基于设定周期的目标时刻相比于目标线程转发上一访问请求给目标服务器的转发时刻更接近当前时刻,则根据第一即时响应时间确定多个服务器当前各自对应的即时响应时间;而若目标线程转发上一访问请求给目标服务器的转发时刻相比于基于设定周期的目标时刻更接近当前时刻,则根据第二即时响应时间确定多个服务器当前各自对应的即时响应时间,也就相当于,目标线程根据当前客户端访问请求的接收时刻,距离该接收时刻最近一次确定的即时响应时间,确定为多个服务器当前各自对应的即时响应时间。
在另一可选实施例中,目标线程根据第一即时响应时间或第二即时响应时间,确定多个服务器当前各自对应的即时响应时间,也可以是,若基于设定周期的目标时刻为当前时刻,则根据第一即时响应时间确定多个服务器当前各自对应的即时响应时间;而若目标线程转发上一访问请求给目标服务器的转发时刻为当前时刻,则根据第二即时响应时间确定多个服务器当前各自对应的即时响应时间。
本发明实施例中,当目标线程第一次确定目标服务器对应的响应时间因子时,可以将目标服务器对应的上一响应时间因子初始设置为固定值,该固定值可以是目标服务器负载较低时对访问请求的响应时间,也可以是一个经验值。设定的加权系数包括上一平均响应时间对应的加权系数和即时响应时间对应的加权系数,加权系数可以根据经验设置,也可以在统计的过程中动态调整以更准确地反映目标服务器当前对应的响应时间,需要注意的是,多个服务器需要设置相同的加权系数。
下面通过具体的实例,详细介绍服务器当前各自对应的响应时间因子的确定过程。
设定:目标线程A1,目标服务器B1,起始时刻:0,周期机制时,即时响应时间的统计周期为100ms,同时结合被动触发机制进行即时响应时间的统计,上一响应时间因子初始设置为11ms,设定的加权系数中,上一响应时间因子对应的加权系数为7/8,即时响应时间对应的加权系数为1/8,目标服务器B1为多个服务器中任一个,则:
1)在100ms时刻(周期时刻),目标线程A1发送测试请求T1给目标服务器B1,得到目标服务器B1的即时响应时间为15ms,第一次计算时,根据上一响应时间因子初始设置值11ms,则确定100ms时刻目标服务器B1对应的响应时间因子RP1为:
RP1=15*1/8+11*7/8=11.5ms
2)在200ms时刻(周期时刻),目标线程A1发送测试请求T2给目标服务器B1,得到目标服务器B1的即时响应时间为20ms,此刻对应的上一响应时间因子为11.5ms,则确定目标服务器B1当前对应的响应时间因子RP2为:
RP2=20*1/8+11.5*7/8=12.56ms
3)在220ms时刻(接收到客户端的访问请求被动触发时刻),目标线程A1接收到客户端的访问请求R1,则:
确定在220ms时刻,对应的基于设定周期的目标时刻为:200ms周期时刻;目标服务器B1的第一即时响应时间为目标服务器B1在目标时刻200ms对应的即时响应时间20ms,以此确定目标服务器B1当前对应的即时响应时间为第一即时响应时间20ms,当前对应的响应时间因子即为RP2:12.56ms,RP2在步骤2)中已经计算得到。
假定目标线程A1经过负载判断,将访问请求R1转发给了目标服务器B1,并统计到目标服务器此刻的即时响应时间为30ms,其中,此时,对应的上一响应时间因子为12.56ms,则确定目标服务器当前的响应时间因子RP3为:
RP3=30*1/8+12.56*7/8=14.74ms
4)在280ms时刻,目标线程A1接收到客户端的访问请求R2,则:
确定在280ms时刻,被动触发时刻220ms距离280ms时刻更近,因此,目标服务器B1的第二即时响应时间为:“220ms时刻对应的即时响应时间”,即30ms,以此确定目标服务器B1当前对应的即时响应时间为第二即时响应时间30ms,对应的响应时间因子即为RP3:14.74ms,RP3在步骤3)中已经计算得到。
假定目标线程A1经过负载判断,将访问请求R2转发给了目标服务器B1,并统计到目标服务器的即时响应时间为28ms,其中,上一响应时间因子为14.74ms,则确定目标服务器当前的响应时间因子RP4为:
RP4=28*1/8+14.74*7/8=16.40ms
上述实施例中,对服务器的即时响应时间和响应时间因子的确定过程,适用于多个服务器中的任一服务器。目标线程可以在接收到客户端的访问消息时,确定多个服务器当前各自对应的响应时间因子。目标线程也可以在确定/获取多个服务器当前各自对应的即时响应时间时,同时确定多个服务器在此刻各自对应的响应时间因子,以实时更新多个服务器各自对应的响应时间因子,以便在接收到客户端的访问消息时,根据实时更新的多个服务器各自对应的响应时间因子确定多个服务器当前各自对应的响应时间因子。
本发明实施例中,设定的加权系数可以根据目标服务器对应的即时响应时间的波动情况进行动态调整,比如,若目标服务器对应的即时响应时间变化平缓,波动小,则可以提高即时响应时间对应的加权系数,降低上一响应时间因子对应的加权系数;若目标服务器对应的响应时间忽上忽下,波动大,则可以降低即时响应时间对应的加权系数,以消除噪声,提升响应时间因子计算的准确性。
在一可选实施例中,根据任一服务器当前对应的响应时间因子与上一响应时间因子,确定任一服务器当前对应的响应时间变化趋势系数。其中,服务器对应的响应时间反映了服务器当前的负载状态,进一步地,确定任一服务器当前对应的响应时间因子与上一响应时间因子的比值为任一服务器当前对应响应时间变化趋势系数,当该比值大于1时,表示服务器当前对应的响应时间变化趋势为上升趋势,当该比值大于1且较大时,表示响应时间上升的快,当该比值小于1时,则表示服务器当前对应的响应时间变化趋势为下降趋势,当该比值小于1且较小时,表示响应时间下降的快,因此,响应时间变化趋势系数反映了任一服务器负载状态的变化趋势及变化快慢。当然,也可以确定任一服务器当前对应的响应时间因子与临近的上一响应时间因子的差值为任一服务器当前对应响应时间变化趋势系数,此时,当该差值大于0是,表示服务器当前对应的响应时间变化趋势为上升趋势,该差值越大,表示上升的越快;当该差值小于0时,表示服务器当前对应的响应时间变化趋势为下降趋势,该差值越小,表示下降的越快。因此,在确定服务器的负载系数时,加入服务器当前对应的响应时间变化趋势系数这个因素,能综合考虑到该服务器当前的负载状态以及未来预期负载状态对当前状态的影响,提升负载均衡设备对多个服务器当前各自对应的负载状态评估的准确性,从而提升负载均衡的准确性。
上面对多个服务器当前各自对应的业务连接数、响应时间因子和响应时间变化趋势系数的确定过程进行了介绍,下面将对如何根据多个服务器当前各自对应的业务连接数、响应时间因子以及响应时间变化趋势系数,确定多个服务器当前各自对应的负载系数进行说明。
在本发明实施例中,根据多个服务器当前各自对应的业务连接数,确定多个服务器当前各自对应的第一负载系数。第一负载系数反映了业务连接数对多个服务器当前各自对应的负载状态的判断权重。其中,第一负载系数可以通过如下多种方法确定:
根据多个服务器当前各自对应的业务连接数,确定多个服务器当前的业务连接数均值;确定任一服务器当前对应的业务连接数与业务连接数均值的比值作为任一服务器当前对应的第一负载系数;或者,
根据多个服务器当前各自对应的业务连接数,确定多个服务器当前业务连接数总和;确定任一服务器当前对应的业务连接数与业务连接数总和的比值作为任一服务器当前对应的第一负载系数;或者,
根据多个服务器当前各自对应的业务连接数,确定任一服务器当前对应的业务连接数与其所能支持的最大业务连接数的比值,作为任一服务器当前对应的第一负载系数,其中,任一服务器所能支持的最大业务连接数与服务自身的软硬件资源相关,可以通过预先设置;或者,
根据多个服务器当前各自对应的业务连接数,以设定的权值对多个服务器当前各自对应的业务连接数加权求和处理,以确定多个服务器当前的加权业务连接数均值;确定任一服务器当前对应的业务连接数与加权业务连接数均值的比值作为任一服务器当前对应的第一负载系数。
本发明实施例中,根据多个服务器当前各自对应的响应时间因子,确定多个服务器当前各自对应的第二负载系数;第二负载系数反映了响应时间因子对多个服务器当前各自对应的负载状态的判断权重。其中,第二负载系数可以通过如下多种方法确定:
根据多个服务器当前各自对应的响应时间因子,确定多个服务器当前的响应时间因子均值;确定任一服务器当前对应的响应时间因子与响应时间因子均值的比值作为任一服务器当前对应的第二负载系数。或者,
根据多个服务器当前各自对应的响应时间因子,确定任一服务器当前对应的响应时间因子与任一服务器对应的响应时间因子的预设值的比值作为任一服务器当前对应的第二负载系数。
值得说明的是,上述第一负载系数及第二负载系数的确定方法仅是示例性的,不应构成对第一负载系数及第二负载系数确定方法的限定。
在确定多个服务器当前各自对应的第一负载系数和第二负载系数之后,根据多个服务器当前各自对应的响应时间变化趋势系数,分别对多个服务器各自对应的第一负载系数和第二负载系数进行加权处理。响应时间的变化趋势在一定程度上反映了负载的变化趋势,通过响应时间变化趋势系数对第一负载系数和第二负载系数进行加权处理,相当于将预测加入了对多个服务器当前各自对应的负载判断中,能更加真实的反映多个服务器当前各自对应的负载状态,而不仅仅关注于当前。比如,当服务器B1对应的响应时间变化趋势系数表达了服务器B1当前对应的响应时间在急剧变大时,可以预测出服务器B1当前对应的负载可能在急剧增大,而此时,服务器B1的第一负载系数和第二负载系数并不是很大,但是随着上述趋势的发展,服务器B1的第一负载系数及第二负载系数在短时间的未来可能会突然特别大,因此,为了能提前给服务器减压,通过响应时间变化趋势系数作为预测因子对服务器B1的第一负载系数及第二负载系数进行加权,能够更真实的反映服务器当前及下一时刻的负载状态,提升对服务器B1当前负载状态判断的准确性和可靠性。
进一步地,根据多个服务器各自对应的加权处理后的第一负载系数和多个服务器各自对应的加权处理后的第二负载系数,确定多个服务器当前各自对应的负载系数。具体地,确定同一服务器对应的加权处理后的第一负载系数与第二负载系数之和作为多个服务器当前各自对应的负载系数;或者,确定同一服务器对应的加权处理后的第一负载系数与第二负载系数之积作为多个服务器当前各自对应的负载系数。
在另一可选实施例中,根据根据多个服务器当前各自对应的响应时间变化趋势系数,对多个服务器各自对应的第二负载系数进行加权处理;根据多个服务器各自对应的第一负载系数和多个服务器各自对应的加权处理后的第二负载系数,确定多个服务器当前各自对应的负载系数。
最后,根据多个服务器当前各自对应的负载系数,确定目标服务器,将访问请求转发给目标服务器。
在上述多个服务器当前各自对应的负载系数的确定方法中,均能综合多个角度均衡考虑多个服务器当前各自对应的业务连接数和响应时间以及将响应时间变化趋势系数加入负载状态的确定中,能更准确的评估服务器当前对应的负载状态,从而根据服务器当前对应的负载状态,确定合适的目标服务器,将客户端消息转发给目标服务器,提升负载均衡的准确性和可靠性,进而提升服务器的系统性能。
图4为本发明实施例提供的一种负载均衡装置的结构示意图,如图4所示,该装置包括:接收模块11,确定模块12和转发模块13。
接收模块11,用于接收客户端发送的访问请求。
确定模块12,用于确定多个服务器当前各自对应的业务连接数、响应时间因子以及响应时间变化趋势系数,所述负载均衡设备与所述多个服务器通信连接;根据所述多个服务器当前各自对应的业务连接数、响应时间因子以及响应时间变化趋势系数,确定所述多个服务器当前各自对应的负载系数;根据所述多个服务器当前各自对应的负载系数,确定目标服务器。
转发模块13,用于将所述访问请求转发给所述目标服务器。
可选地,所述确定模块12具体用于:获取所述多个服务器各自对应的上一响应时间因子;确定所述多个服务器当前各自对应的即时响应时间;以设定的加权系数分别对同一服务器对应的所述上一响应时间因子和所述即时响应时间进行加权求和处理,以得到所述多个服务器当前各自对应的响应时间因子。
可选地,所述确定模块12具体用于:在基于设定周期确定的目标时刻向所述多个服务器分别发送测试请求,以及,根据所述多个服务器分别针对所述测试请求反馈的测试响应确定所述多个服务器当前各自对应的第一即时响应时间,其中,所述访问请求的接收时刻临近所述目标时刻;和/或根据所述多个服务器分别针对上一访问请求反馈的访问响应确定所述多个服务器当前各自对应的第二即时响应时间,其中,所述上一访问请求是指在所述访问请求之前分别转发至所述多个服务器的访问请求;根据所述第一即时响应时间和/或所述第二即时响应时间,确定所述多个服务器当前各自对应的即时响应时间。
可选地,所述确定模块12具体用于:根据任一服务器当前对应的响应时间因子与上一响应时间因子,确定所述任一服务器当前对应的响应时间变化趋势系数。
可选地,所述确定模块12还具体用于:根据所述多个服务器当前各自对应的业务连接数,确定所述多个服务器当前各自对应的第一负载系数;根据所述多个服务器当前各自对应的响应时间因子,确定所述多个服务器当前各自对应的第二负载系数;根据所述多个服务器当前各自对应的响应时间变化趋势系数,分别对所述多个服务器各自对应的第一负载系数和第二负载系数进行加权处理;根据所述多个服务器各自对应的加权处理后的第一负载系数和所述多个服务器各自对应的加权处理后的第二负载系数,确定所述多个服务器当前各自对应的负载系数。
可选地,所述确定模块12具体用于:根据所述多个服务器当前各自对应的业务连接数,确定所述多个服务器当前的业务连接数均值;确定任一服务器当前对应的业务连接数与所述业务连接数均值的比值作为所述任一服务器当前对应的第一负载系数。
可选地,所述确定模块12还具体用于:根据所述多个服务器当前各自对应的响应时间因子,确定所述多个服务器当前的响应时间因子均值;确定任一服务器当前对应的响应时间因子与所述响应时间因子均值的比值作为所述任一服务器当前对应的第二负载系数。
图4所示装置可以执行前述实施例中负载均衡设备中对应于目标处理核心的线程执行的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,上述图4所示负载均衡装置的结构可实现为一电子设备。如图5所示,该电子设备可以包括:处理器21、存储器22、通信接口23。其中,存储器22上存储有可执行代码,当所述可执行代码被处理器21执行时,使处理器21至少可以实现如前述实施例中负载均衡设备中对应于目标处理核心的线程执行的负载均衡方法。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,非暂时性机器可读存储介质上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器至少可以实现如前述实施例中提供的负载均衡方法。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (7)

1.一种负载均衡方法,其特征在于,应用于负载均衡设备中对应于目标处理核心的线程,所述负载均衡设备中包含至少一个处理核心,每个处理核心对应有一线程,所述目标处理核心是所述至少一个处理核心中的任一个,所述方法包括:
接收客户端发送的访问请求;
确定多个服务器当前各自对应的业务连接数以及响应时间变化趋势系数,所述负载均衡设备与所述多个服务器通信连接;
根据所述多个服务器当前各自对应的业务连接数,确定所述多个服务器当前各自对应的第一负载系数;
获取所述多个服务器各自对应的上一响应时间因子,其中,所述上一响应时间因子为上一次确定出的时间响应因子;
在基于设定周期确定的目标时刻向所述多个服务器分别发送测试请求,以及,根据所述多个服务器分别针对所述测试请求反馈的测试响应确定所述多个服务器当前各自对应的第一即时响应时间,其中,所述访问请求的接收时刻临近所述目标时刻;
根据所述多个服务器分别针对上一访问请求反馈的访问响应确定所述多个服务器当前各自对应的第二即时响应时间,其中,所述上一访问请求是指在所述访问请求之前分别转发至所述多个服务器的访问请求;
若所述目标时刻相比于转发所述上一访问请求的转发时刻更接近当前时刻,则根据所述第一即时响应时间确定所述多个服务器当前各自对应的即时响应时间;若转发所述上一访问请求的转发时刻相比于所述目标时刻更接近当前时刻,则根据所述第二即时响应时间确定所述多个服务器当前各自对应的即时响应时间;
以设定的加权系数分别对同一服务器对应的所述上一响应时间因子和所述即时响应时间进行加权求和处理,以得到所述多个服务器当前各自对应的响应时间因子;
根据所述多个服务器当前各自对应的响应时间因子,确定所述多个服务器当前各自对应的第二负载系数;
根据所述多个服务器当前各自对应的响应时间变化趋势系数,分别对所述多个服务器各自对应的第一负载系数和第二负载系数进行加权处理;
根据所述多个服务器各自对应的加权处理后的第一负载系数和所述多个服务器各自对应的加权处理后的第二负载系数,确定所述多个服务器当前各自对应的负载系数;
根据所述多个服务器当前各自对应的负载系数,确定目标服务器;
将所述访问请求转发给所述目标服务器。
2.根据权利要求1所述的方法,其特征在于,确定多个服务器当前各自对应的响应时间变化趋势系数,包括:
根据任一服务器当前对应的响应时间因子与上一响应时间因子,确定所述任一服务器当前对应的响应时间变化趋势系数。
3.根据权利要求1所述的方法,其特征在于,所述根据所述多个服务器当前各自对应的业务连接数,确定所述多个服务器当前各自对应的第一负载系数,包括:
根据所述多个服务器当前各自对应的业务连接数,确定所述多个服务器当前的业务连接数均值;
确定任一服务器当前对应的业务连接数与所述业务连接数均值的比值作为所述任一服务器当前对应的第一负载系数。
4.根据权利要求1所述的方法,其特征在于,所述根据所述多个服务器当前各自对应的响应时间因子,确定所述多个服务器当前各自对应的第二负载系数,包括:
根据所述多个服务器当前各自对应的响应时间因子,确定所述多个服务器当前的响应时间因子均值;
确定任一服务器当前对应的响应时间因子与所述响应时间因子均值的比值作为所述任一服务器当前对应的第二负载系数。
5.一种负载均衡装置,其特征在于,包括:
接收模块,用于接收客户端发送的访问请求;
确定模块,用于确定多个服务器当前各自对应的业务连接数以及响应时间变化趋势系数,所述负载均衡装置与所述多个服务器通信连接;根据所述多个服务器当前各自对应的业务连接数,确定所述多个服务器当前各自对应的第一负载系数;获取所述多个服务器各自对应的上一响应时间因子,其中,所述上一响应时间因子为上一次确定出的时间响应因子;在基于设定周期确定的目标时刻向所述多个服务器分别发送测试请求,以及,根据所述多个服务器分别针对所述测试请求反馈的测试响应确定所述多个服务器当前各自对应的第一即时响应时间,其中,所述访问请求的接收时刻临近所述目标时刻;根据所述多个服务器分别针对上一访问请求反馈的访问响应确定所述多个服务器当前各自对应的第二即时响应时间,其中,所述上一访问请求是指在所述访问请求之前分别转发至所述多个服务器的访问请求;若所述目标时刻相比于转发所述上一访问请求的转发时刻更接近当前时刻,则根据所述第一即时响应时间确定所述多个服务器当前各自对应的即时响应时间;若转发所述上一访问请求的转发时刻相比于所述目标时刻更接近当前时刻,则根据所述第二即时响应时间确定所述多个服务器当前各自对应的即时响应时间;以设定的加权系数分别对同一服务器对应的所述上一响应时间因子和所述即时响应时间进行加权求和处理,以得到所述多个服务器当前各自对应的响应时间因子;根据所述多个服务器当前各自对应的响应时间因子,确定所述多个服务器当前各自对应的第二负载系数;根据所述多个服务器当前各自对应的响应时间变化趋势系数,分别对所述多个服务器各自对应的第一负载系数和第二负载系数进行加权处理;根据所述多个服务器各自对应的加权处理后的第一负载系数和所述多个服务器各自对应的加权处理后的第二负载系数,确定所述多个服务器当前各自对应的负载系数;根据所述多个服务器当前各自对应的负载系数,确定目标服务器;
转发模块,用于将所述访问请求转发给所述目标服务器。
6.一种电子设备,其特征在于,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1至4中任一项所述的负载均衡方法。
7.一种非暂时性机器可读存储介质,其特征在于,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至4中任一项所述的负载均衡方法。
CN202311571701.6A 2023-11-23 2023-11-23 负载均衡方法、装置、设备及存储介质 Active CN117319406B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311571701.6A CN117319406B (zh) 2023-11-23 2023-11-23 负载均衡方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311571701.6A CN117319406B (zh) 2023-11-23 2023-11-23 负载均衡方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN117319406A CN117319406A (zh) 2023-12-29
CN117319406B true CN117319406B (zh) 2024-03-12

Family

ID=89286773

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311571701.6A Active CN117319406B (zh) 2023-11-23 2023-11-23 负载均衡方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN117319406B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102316133A (zh) * 2010-07-01 2012-01-11 中国移动通信集团上海有限公司 一种负载均衡方法及装置
CN109995818A (zh) * 2017-12-29 2019-07-09 中移(杭州)信息技术有限公司 一种服务器负载均衡的方法及装置
CN110049143A (zh) * 2019-05-31 2019-07-23 华迪计算机集团有限公司 负载均衡方法及装置
WO2022183802A1 (zh) * 2021-03-05 2022-09-09 深圳前海微众银行股份有限公司 一种负载均衡方法及装置、设备、存储介质、计算机程序产品
CN115604278A (zh) * 2022-09-30 2023-01-13 中国工商银行股份有限公司(Cn) 动态负载均衡方法和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102316133A (zh) * 2010-07-01 2012-01-11 中国移动通信集团上海有限公司 一种负载均衡方法及装置
CN109995818A (zh) * 2017-12-29 2019-07-09 中移(杭州)信息技术有限公司 一种服务器负载均衡的方法及装置
CN110049143A (zh) * 2019-05-31 2019-07-23 华迪计算机集团有限公司 负载均衡方法及装置
WO2022183802A1 (zh) * 2021-03-05 2022-09-09 深圳前海微众银行股份有限公司 一种负载均衡方法及装置、设备、存储介质、计算机程序产品
CN115604278A (zh) * 2022-09-30 2023-01-13 中国工商银行股份有限公司(Cn) 动态负载均衡方法和系统

Also Published As

Publication number Publication date
CN117319406A (zh) 2023-12-29

Similar Documents

Publication Publication Date Title
CN106302434B (zh) 服务器适配方法、装置和系统
US7805517B2 (en) System and method for load balancing a communications network
Colajanni et al. Scheduling algorithms for distributed web servers
US9774665B2 (en) Load balancing of distributed services
US20060277303A1 (en) Method to improve response time when clients use network services
US20050154576A1 (en) Policy simulator for analyzing autonomic system management policy of a computer system
US9686158B1 (en) Point to node in a multi-tiered middleware environment
WO2000019325A1 (en) Customer web log-in architecture
WO2014148247A1 (ja) 処理制御システム、処理制御方法、および処理制御プログラム
CN112087520B (zh) 数据处理方法、装置、设备及计算机可读存储介质
US11025709B2 (en) Load processing method and apparatus
US11888745B2 (en) Load balancer metadata forwarding on secure connections
US20180041568A1 (en) Load balancing by moving sessions
US20220318071A1 (en) Load balancing method and related device
CN106888277A (zh) 一种域名查询方法及装置
CN110351311A (zh) 负载均衡方法及计算机存储介质
CN117319406B (zh) 负载均衡方法、装置、设备及存储介质
CN111130936A (zh) 一种负载均衡算法的测试方法及装置
CN113098763B (zh) 即时通讯消息发送方法、装置、存储介质及设备
CN111737000A (zh) 一种实现负载均衡的方法
CN116764235A (zh) 数据处理方法及相关装置
US20060047661A1 (en) System and method for look ahead caching of personalized web content for portals
CN115085969B (zh) 基于Vpp底层框架的拟态架构及裁决方法
US12001888B2 (en) Server instance allocation for execution of application instances
CN112134957B (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