CN107026907B - 一种负载均衡方法、负载均衡器及负载均衡系统 - Google Patents

一种负载均衡方法、负载均衡器及负载均衡系统 Download PDF

Info

Publication number
CN107026907B
CN107026907B CN201710204727.5A CN201710204727A CN107026907B CN 107026907 B CN107026907 B CN 107026907B CN 201710204727 A CN201710204727 A CN 201710204727A CN 107026907 B CN107026907 B CN 107026907B
Authority
CN
China
Prior art keywords
server
client
reference value
load
load reference
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
CN201710204727.5A
Other languages
English (en)
Other versions
CN107026907A (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.)
Guangdong red food technology Co., Ltd
Original Assignee
Guangdong Red Food Technology 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 Guangdong Red Food Technology Co Ltd filed Critical Guangdong Red Food Technology Co Ltd
Priority to CN201710204727.5A priority Critical patent/CN107026907B/zh
Publication of CN107026907A publication Critical patent/CN107026907A/zh
Application granted granted Critical
Publication of CN107026907B publication Critical patent/CN107026907B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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
    • 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/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • 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/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • 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/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests

Landscapes

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

Abstract

本发明公开了一种负载均衡方法,包括以下步骤:S20、根据客户端发送的连接请求信息,查找出客户端对应的目标服务器;S30、判断目标服务器的负载参考值是否小于第一预设阈值;S40、当负载参考值小于第一预设阈值时,则将客户端的连接请求信息分配给目标服务器;S50、当负载参考值大于等于第一预设阈值时,则进一步判断负载参考值是否小于第二预设阈值;S60、负载参考值小于第二预设阈值时,则将客户端的连接请求信息分配给服务器状态表中当前负载参考值最低的备选服务器。本发明中当目标服务器的负载太多时,将连接请求信息分配给备选服务器;在基本保证一个IP总是能分配给同一台服务器的前提下,使得服务器的负载更加均衡。

Description

一种负载均衡方法、负载均衡器及负载均衡系统
技术领域
本发明属于负载均衡技术领域,涉及负载均衡方法、负载均衡器及负载均衡系统。
背景技术
负载均衡建立在现有网络结构之上,廉价有效透明地扩展了网络设备、服务器的带宽,增加了吞吐量,加强了网络数据处理能力,以及提高了网络的灵活性和可用性。负载均衡,是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
目前,主要有以下几种负载均衡方法:(一)静态负载均衡算法是按照固定规则将请求分配给服务器;例如按照轮询算法将第i次请求分配给第i mod n台服务器。(二)动态负载均衡算法是把请求分配给当前负载最低的服务器;服务器的负载程度基于活跃连接数,响应时间等。(三)源地址哈希法是客户端IP地址通过哈希函数计算得到一个数值,该数值对服务器列表的大小进行取模运算,得到客户端要访问服务器。同一个客户端每次都会映射到同一台后端服务器进行访问。
然而,静态负载均衡算法和源地址哈希法只能将请求分配给已设置好的服务器,不能考虑服务器的当前状态,容易导致服务器负载不均衡。其动态负载均衡算法容易导致频繁切换服务器。
发明内容
本发明提供的技术方案如下:
本发明提供一种负载均衡方法,包括以下步骤:S20、根据客户端发送的连接请求信息,查找出所述客户端对应的目标服务器;S30、判断所述目标服务器的负载参考值是否小于第一预设阈值;S40、当所述目标服务器的负载参考值小于第一预设阈值时,则将所述客户端的连接请求信息分配给所述目标服务器;S50、当所述目标服务器的负载参考值大于等于第一预设阈值时,则进一步判断所述目标服务器的负载参考值是否小于第二预设阈值;S60、所述目标服务器的负载参考值小于第二预设阈值时,则将所述客户端的连接请求信息分配给服务器状态表中当前负载参考值最低的备选服务器。
进一步,还包括以下步骤:S70、当所述目标服务器的负载参考值大于等于第二预设阈值时,则将所述客户端的连接请求信息分配给服务器状态表中当前负载参考值最低的备选服务器,且修改所述客户端对应的目标服务器为所述备选服务器。
进一步,所述步骤S20之前还包括:S01、根据所述客户端IP的散列值以及服务器的对应关系,预先生成散列值-服务器对照表;S02、预先生成含有每个服务器状态的服务器状态表,所述服务器状态包括所述服务器的资源占用率、异常连接次数、数据更新时间及负载参考值。
进一步,所述步骤S20之前还包括:S10、按照预设更新时间接收所述服务器发送的资源占用率、异常连接次数;所述资源占用率包括所述服务器的CPU占用率、内存占用率和宽带占用率;S11、在所述服务器状态表中更新所述服务器的状态,以及更新所述服务器状态表的数据更新时间。
进一步,所述步骤S20之前还包括:S12、根据所述服务器的资源占用率、数据更新时间、异常连接次数,按照预设计算时间计算出所述服务器的负载参考值。
进一步,所述步骤S20进一步包括:S21、根据客户端发送的连接请求信息,获取所述客户端的客户端IP;S22、利用散列算法计算出所述客户端IP对应的散列值;S23、根据散列值-服务器对照表,查找出所述客户端对应的目标服务器。
本发明还提供一种负载均衡器,包括:查找模块,用于根据客户端发送的连接请求信息,查找出所述客户端对应的目标服务器;判断模块,用于判断所述目标服务器的负载参考值是否小于第一预设阈值;分配控制模块,用于当所述目标服务器的负载参考值小于第一预设阈值时,则将所述客户端的连接请求信息分配给所述目标服务器;所述判断模块,还用于当所述目标服务器的负载参考值大于等于第一预设阈值时,则进一步判断所述目标服务器的负载参考值是否小于第二预设阈值;所述分配控制模块,还用于所述目标服务器的负载参考值小于第二预设阈值时,则将所述客户端的连接请求信息分配给服务器状态表中当前负载参考值最低的备选服务器。
进一步,还包括修改模块:当所述目标服务器的负载参考值大于等于第二预设阈值时,则所述分配控制模块用于将所述客户端的连接请求信息分配给服务器状态表中当前负载参考值最低的备选服务器,且所述修改模块用于修改所述客户端对应的目标服务器为所述备选服务器。
进一步,还包括:生成模块,用于根据所述客户端IP的散列值以及服务器的对应关系,预先生成散列值-服务器对照表;所述生成模块,还用于预先生成含有每个服务器状态的服务器状态表,所述服务器状态包括所述服务器的资源占用率、异常连接次数、数据更新时间及负载参考值。
本发明还提供一种负载均衡系统,包括负载均衡器,还包括服务器:所述服务器,用于发送资源占用率、异常连接次数;所述资源占用率包括所述服务器的CPU占用率、内存占用率和宽带占用率。
与现有技术相比,本发明提供的一种负载均衡方法、负载均衡器及负载均衡系统,具有以下有益效果:
1)本发明中每个客户端对应一个目标服务器,在客户端发送连接请求信息时,分析目标服务器的负载情况;当目标服务器的负载太多时,将连接请求信息分配给备选服务器;当目标服务器的负载不多时,将连接请求信息分配给目标服务器。在基本保证一个IP总是能分配给同一台服务器的前提下,使得服务器的负载更加均衡;并且不会频繁切换服务器。
2)本发明中目标服务器的负载过多时,将连接请求信息分配给备选服务器,并将目标服务器修改为备选服务器。再次发送连接请求信息时,其目标服务器为备选服务器,充分利用各个服务器,使得服务器的负载更加均衡。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对一种负载均衡方法、负载均衡器及负载均衡系统的上述特性、技术特征、优点及其实现方式予以进一步说明。
图1是本发明一种负载均衡方法的流程示意图;
图2是本发明另一种负载均衡方法的流程示意图;
图3是本发明中步骤S20的流程示意图;
图4是本发明又一种负载均衡方法的流程示意图;
图5是本发明一种负载均衡器的组成结构示意图;
图6是本发明另一种负载均衡方法的流程示意图。
附图标号说明:
11、生成模块,12、接收模块,13、更新模块,14、计算模块,15、获取模块,16、查找模块,17、判断模块,18、分配控制模块。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
如图1所示,根据本发明的一个实施例,一种负载均衡方法,包括以下步骤:S20、根据客户端发送的连接请求信息,查找出所述客户端对应的目标服务器;
S30、判断所述目标服务器的负载参考值是否小于第一预设阈值;
S40、当所述目标服务器的负载参考值小于第一预设阈值时,则将所述客户端的连接请求信息分配给所述目标服务器;
S50、当所述目标服务器的负载参考值大于等于第一预设阈值时,则进一步判断所述目标服务器的负载参考值是否小于第二预设阈值;
S60、所述目标服务器的负载参考值小于第二预设阈值时,则将所述客户端的连接请求信息分配给当前服务器状态表中负载参考值最低的备选服务器。
具体的,预先设置每个客户端对应一个目标服务器,当客户端A发送连接请求信息时,查找出客户端对应的目标服务器A。判断目标服务器A的负载参考值是否小于第一预设阈值;负载参考值越大,目标服务器A当前负载越多;负载参考值越小,目标服务器A当前负载越少。当目标服务器A的负载参考值小于第一预设阈值时,直接将连接请求信息分配给目标服务器A。当目标服务器A的负载参考值大于等于第一预设阈值、且小于第二预设阈值时,将连接请求信息不分配给目标服务器A,而是分配给服务器状态表中负载参考值最低的备选服务器,例如服务器B。在客户端下一次发送连接请求信息时,重复前述步骤。
如图2所示,根据本发明的另一个实施例,一种负载均衡方法,包括以下步骤:S20、根据客户端发送的连接请求信息,查找出所述客户端对应的目标服务器;
S30、判断所述目标服务器的负载参考值是否小于第一预设阈值;
S40、当所述目标服务器的负载参考值小于第一预设阈值时,则将所述客户端的连接请求信息分配给所述目标服务器;
S50、当所述目标服务器的负载参考值大于等于第一预设阈值时,则进一步判断所述目标服务器的负载参考值是否小于第二预设阈值;
S60、所述目标服务器的负载参考值小于第二预设阈值时,则将所述客户端的连接请求信息分配给当前服务器状态表中负载参考值最低的备选服务器。
S70、当所述目标服务器的负载参考值大于等于第二预设阈值时,则将所述客户端的连接请求信息分配给服务器状态表中当前负载参考值最低的备选服务器,且修改所述客户端对应的目标服务器为所述备选服务器。
具体的,当客户端A发送连接请求信息时,查找出客户端对应的目标服务器A。判断目标服务器A的负载参考值是否小于第一预设阈值;负载参考值越大,目标服务器A当前负载越多;负载参考值越小,目标服务器A当前负载越少。当目标服务器A的负载参考值小于第一预设阈值时,直接将连接请求信息分配给目标服务器A。当目标服务器A的负载参考值大于等于第一预设阈值、且小于第二预设阈值时,将连接请求信息不分配给目标服务器A,而是分配给服务器状态表中负载参考值最低的备选服务器,例如服务器B。当目标服务器A的负载参考值大于等于第二预设阈值时,将连接请求信息不分配给目标服务器A,而是分配给服务器状态表中负载参考值最低的备选服务器,例如服务器B;并将客户端对应的目标服务器A修改服务器B。在客户端下一次发送连接请求信息时,查找出客户端对应的目标服务器B后,重复上述步骤,分析目标服务器B的负载情况。
如图3、图4所示,根据本发明的再一个实施例,一种负载均衡方法,包括以下步骤:
S01、根据所述客户端IP的散列值以及服务器的对应关系,预先生成散列值-服务器对照表;所述散列值-服务器对照表包括设定长度(长度为10000)的数组,数组中第i个元素的值就是映射为i的客户端IP对应的目标服务器;初始化时,可以将散列值均摊到每个服务器上,也可以依据服务器性能分配散列值。
S02、预先生成含有每个服务器状态的服务器状态表,所述服务器状态包括资源占用率、异常连接次数、数据更新时间及负载参考值。所述异常连接次数存储在设定容量(例如容量为20)的异常连接数队列中,异常连接数队列仅保存最近20次更新的异常连接次数。当异常连接数队列存满时,放入新的异常连接次数时,移出异常连接数队列中最先存储的异常连接次数。
S10、按照预设更新时间接收所述服务器发送的资源占用率、异常连接次数;所述资源占用率包括所述服务器的CPU占用率、内存占用率和宽带占用率;其中,资源占用率指CPU占用率、内存占用率和宽带占用率三者中在设定统计次数中平均值较高的两者。
S11、在所述服务器状态表中更新所述服务器的状态,以及更新所述服务器状态表的数据更新时间。
优选的,还包括:S12、根据所述服务器的资源占用率、数据更新时间、异常连接次数,按照预设计算时间计算出所述服务器的负载参考值。
S20、根据客户端发送的连接请求信息,查找出所述客户端对应的目标服务器;
优选的,所述步骤S20进一步包括:S21、根据客户端发送的连接请求信息,获取所述客户端的客户端IP;
S22、利用散列算法计算出所述客户端IP对应的散列值;
S23、根据散列值-服务器对照表,查找出所述客户端对应的目标服务器。
S30、判断所述目标服务器的负载参考值是否小于第一预设阈值;
S40、当所述目标服务器的负载参考值小于第一预设阈值时,则将所述客户端的连接请求信息分配给所述目标服务器;
S50、当所述目标服务器的负载参考值大于等于第一预设阈值时,则进一步判断所述目标服务器的负载参考值是否小于第二预设阈值;
S60、所述目标服务器的负载参考值小于第二预设阈值时,则将所述客户端的连接请求信息分配给当前服务器状态表中负载参考值最低的备选服务器。
S70、当所述目标服务器的负载参考值大于等于第二预设阈值时,则将所述客户端的连接请求信息分配给服务器状态表中当前负载参考值最低的备选服务器,且修改所述客户端对应的目标服务器为所述备选服务器,即修改所述客户端IP对应的散列值。
具体的,利用散列算法将每个客户端IP映射为0~9999中的一个散列值并形成一个数组,数组中第i个元素就是散列值,第i个元素的值就是该散列值对应的服务器。
根据资源占用率、数据更新时间、异常连接次数,计算服务器的负载参考值。其中,资源占用率是指相邻两个数据更新时间之间,多次统计CPU占用率、内存占用率和宽带占用率,根据统计次数计算出CPU占用率、内存占用率和宽带占用率的平均值。三个CPU占用率、内存占用率和宽带占用率中平均值中较高的两个作为资源占用率。其中,异常连接次数是指相邻两个数据更新时间之间,统计异常连接的次数。资源占用率越高,负载参考值越大;数据更新时间越新,负载参考值越大;异常连接次数越多,负载参考值越大。
如图5所示,根据本发明的再一个实施例,一种负载均衡器,包括:生成模块11,用于根据所述客户端IP的散列值以及服务器的对应关系,预先生成散列值-服务器对照表;所述散列值-服务器对照表包括设定长度(长度为10000)的数组,数组中第i个元素的值就是映射为i的客户端IP对应的目标服务器;初始化时,可以将散列值均摊到每个服务器上,也可以依据服务器性能分配散列值。
所述生成模块11,还用于预先生成含有每个服务器状态的服务器状态表,所述服务器状态包括资源占用率、异常连接次数、数据更新时间及负载参考值。所述异常连接次数存储在设定容量(例如容量为20)的异常连接数队列中,异常连接数队列仅保存最近20次更新的异常连接次数。当异常连接数队列存满时,放入新的异常连接次数时,移出异常连接数队列中最先存储的异常连接次数。
接收模块12,用于按照预设更新时间接收所述服务器发送的资源占用率、异常连接次数;所述资源占用率包括所述服务器的CPU占用率、内存占用率和宽带占用率;其中,资源占用率指CPU占用率、内存占用率和宽带占用率三者中在设定统计次数中平均值较高的两者。
更新模块13,用于在所述服务器状态表中更新所述服务器的状态,以及更新所述服务器状态表的数据更新时间。
优选的,还包括:计算模块14,用于根据所述服务器的资源占用率、数据更新时间、异常连接次数,按照预设计算时间计算出所述服务器的负载参考值。
查找模块16,用于根据客户端发送的连接请求信息,查找出所述客户端对应的目标服务器。
优选的,获取模块15,用于根据客户端发送的连接请求信息,获取所述客户端的客户端IP。
所述计算模块14,还用于利用散列算法计算出所述客户端IP对应的散列值。
所述查找模块16,还用于根据散列值-服务器对照表,查找出所述客户端对应的目标服务器。
判断模块17,用于判断所述目标服务器的负载参考值是否小于第一预设阈值。
分配控制模块18,用于当所述目标服务器的负载参考值小于第一预设阈值时,则将所述客户端的连接请求信息分配给所述目标服务器。
所述判断模块17,还用于当所述目标服务器的负载参考值大于等于第一预设阈值时,则进一步判断所述目标服务器的负载参考值是否小于第二预设阈值。
所述分配控制模块18,还用于所述目标服务器的负载参考值小于第二预设阈值时,则将所述客户端的连接请求信息分配给当前服务器状态表中负载参考值最低的备选服务器。
所述分配控制模块18,还用于当所述目标服务器的负载参考值大于等于第二预设阈值时,则将所述客户端的连接请求信息分配给服务器状态表中当前负载参考值最低的备选服务器,且修改所述客户端对应的目标服务器为所述备选服务器,即修改所述客户端IP对应的散列值。
根据本发明的再一个实施例,一种负载均衡系统,包括负载均衡器和服务器:所述负载均衡器包括:生成模块11,用于根据所述客户端IP的散列值以及服务器的对应关系,预先生成散列值-服务器对照表;所述散列值-服务器对照表包括设定长度(长度为10000)的数组,数组中第i个元素的值就是映射为i的客户端IP对应的目标服务器;初始化时,可以将散列值均摊到每个服务器上,也可以依据服务器性能分配散列值。
所述生成模块11,还用于预先生成含有每个服务器状态的服务器状态表,所述服务器状态包括资源占用率、异常连接次数、数据更新时间及负载参考值。所述异常连接次数存储在设定容量(例如容量为20)的异常连接数队列中,异常连接数队列仅保存最近20次更新的异常连接次数。当异常连接数队列存满时,放入新的异常连接次数时,移出异常连接数队列中最先存储的异常连接次数。
接收模块12,用于按照预设更新时间接收所述服务器发送的资源占用率、异常连接次数;所述资源占用率包括所述服务器的CPU占用率、内存占用率和宽带占用率;其中,资源占用率指CPU占用率、内存占用率和宽带占用率三者中在设定统计次数中平均值较高的两者。
更新模块13,用于在所述服务器状态表中更新所述服务器的状态,以及更新所述服务器状态表的数据更新时间。
优选的,还包括:计算模块14,用于根据所述服务器的资源占用率、数据更新时间、异常连接次数,按照预设计算时间计算出所述服务器的负载参考值。
查找模块16,用于根据客户端发送的连接请求信息,查找出所述客户端对应的目标服务器。
优选的,获取模块15,用于根据客户端发送的连接请求信息,获取所述客户端的客户端IP。
所述计算模块14,还用于利用散列算法计算出所述客户端IP对应的散列值。
所述查找模块16,还用于根据散列值-服务器对照表,查找出所述客户端对应的目标服务器。
判断模块17,用于判断所述目标服务器的负载参考值是否小于第一预设阈值。
分配控制模块18,用于当所述目标服务器的负载参考值小于第一预设阈值时,则将所述客户端的连接请求信息分配给所述目标服务器。
所述判断模块17,还用于当所述目标服务器的负载参考值大于等于第一预设阈值时,则进一步判断所述目标服务器的负载参考值是否小于第二预设阈值。
所述分配控制模块18,还用于所述目标服务器的负载参考值小于第二预设阈值时,则将所述客户端的连接请求信息分配给当前服务器状态表中负载参考值最低的备选服务器。
所述分配控制模块18,还用于当所述目标服务器的负载参考值大于等于第二预设阈值时,则将所述客户端的连接请求信息分配给服务器状态表中当前负载参考值最低的备选服务器,且修改所述客户端对应的目标服务器为所述备选服务器,即修改所述客户端IP对应的散列值。
所述服务器用于发送资源占用率、异常连接次数;所述资源占用率包括所述服务器的CPU占用率、内存占用率和宽带占用率;其中,资源占用率指CPU占用率、内存占用率和宽带占用率三者中在设定统计次数中平均值较高的两者。
根据本发明的一个实施例,一种负载均衡方法,包括以下步骤:负载均衡器按散列算法将客户端IP映射为一个0–9999的散列值,并且维护一张散列值-服务器对照表:一个长度为10000的数组,其第i个元素的值就是散列值i对应的服务器号。初始化时可以将散列值均摊到所有服务器上,也可以依据服务器性能分配散列值。
负载均衡器维护一张服务器状态表,其中包括服务器的资源占用率、异常连接数队列(容量为20)、最新更新时间及服务器负载值。
在服务器上运行一个低优先级进程,定时向均衡器发送服务器的资源占用率和从上一次发送结束到本次发送开始产生的异常连接数数量。其中资源占用率为服务器的CPU占用率,内存占用率和带宽占用率这三个值中最高的两个的平均值。
负载均衡器收到服务器发送的数据后更新服务器状态表,直接把资源占用率更新为服务器给出的值;将最新更新时间设为均衡器当前时间;将异常连接数push到异常连接数队列中,若队列已满则自动把队列第一个元素pop。即服务器状态表总是保留最近20次的异常连接数。
负载均衡器定时计算服务器的负载值,依据服务器的资源占用率,最新更新时间,异常连接数队列得到服务器的负载值评分(0-99),分数越高表明负荷越严重。
当负载均衡器收到某个客户端的请求时,首先计算该客户端IP的散列值,然后找出该散列值对应的目标服务器。当目标服务器的负载值低于第一阈值时均衡器选择直接将请求分配给目标服务器;当目标服务器的负载值高于第一阈值且低于第二阈值时均衡器选择将请求分配给当前负载最低的服务器;目标服务器的负载值高于第二阈值时均衡器选择将请求分配给当前负载最低的服务器,并且将请求IP的散列值对应的服务器修改为新的服务器。
具体的,负载均衡器依据规定的散列算法将客户端IP地址映射为一个散列值,再找出该散列值对应的目标服务器号。负载均衡器根据目标服务器号的负载值进行IP分配;若负载值低于阈值则直接将IP分配给目标服务器;否则将IP分配给当前负载值最低的服务器,并且将该散列值对应的目标服务器修改为新服务器。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (9)

1.一种负载均衡方法,其特征在于,包括以下步骤:
S20、根据客户端发送的连接请求信息,查找出所述客户端对应的目标服务器;
S30、判断所述目标服务器的负载参考值是否小于第一预设阈值;
S40、当所述目标服务器的负载参考值小于第一预设阈值时,则将所述客户端的连接请求信息分配给所述目标服务器;
S50、当所述目标服务器的负载参考值大于等于第一预设阈值时,则进一步判断所述目标服务器的负载参考值是否小于第二预设阈值;
S60、所述目标服务器的负载参考值小于第二预设阈值时,则将所述客户端的连接请求信息分配给服务器状态表中当前负载参考值最低的备选服务器;
S70、当所述目标服务器的负载参考值大于等于第二预设阈值时,则将所述客户端的连接请求信息分配给服务器状态表中当前负载参考值最低的备选服务器,且修改所述客户端对应的目标服务器为所述备选服务器。
2.如权利要求1所述的负载均衡方法,其特征在于,所述步骤S20之前还包括:
S01、根据所述客户端IP的散列值以及服务器的对应关系,预先生成散列值-服务器对照表;
S02、预先生成含有每个服务器状态的服务器状态表,所述服务器状态包括所述服务器的资源占用率、异常连接次数、数据更新时间及负载参考值。
3.如权利要求1所述的负载均衡方法,其特征在于,所述步骤S20之前还包括:
S10、按照预设更新时间接收所述服务器发送的资源占用率、异常连接次数;所述资源占用率包括所述服务器的CPU占用率、内存占用率和宽带占用率;
S11、在所述服务器状态表中更新所述服务器的状态,以及更新所述服务器状态表的数据更新时间。
4.如权利要求3所述的负载均衡方法,其特征在于,所述步骤S20之前还包括:
S12、根据所述服务器的资源占用率、数据更新时间、异常连接次数,按照预设计算时间计算出所述服务器的负载参考值。
5.如权利要求1~4中任意一项所述的负载均衡方法,其特征在于,所述步骤S20进一步包括:
S21、根据客户端发送的连接请求信息,获取所述客户端的客户端IP;
S22、利用散列算法计算出所述客户端IP对应的散列值;
S23、根据散列值-服务器对照表,查找出所述客户端对应的目标服务器。
6.一种应用在如权利要求1~4中任意一项所述的负载均衡方法的负载均衡器,其特征在于,包括:
查找模块,用于根据客户端发送的连接请求信息,查找出所述客户端对应的目标服务器;
判断模块,用于判断所述目标服务器的负载参考值是否小于第一预设阈值;
分配控制模块,用于当所述目标服务器的负载参考值小于第一预设阈值时,则将所述客户端的连接请求信息分配给所述目标服务器;
所述判断模块,还用于当所述目标服务器的负载参考值大于等于第一预设阈值时,则进一步判断所述目标服务器的负载参考值是否小于第二预设阈值;
所述分配控制模块,还用于所述目标服务器的负载参考值小于第二预设阈值时,则将所述客户端的连接请求信息分配给服务器状态表中当前负载参考值最低的备选服务器。
7.如权利要求6所述的负载均衡器,其特征在于,还包括修改模块:
当所述目标服务器的负载参考值大于等于第二预设阈值时,则所述分配控制模块用于将所述客户端的连接请求信息分配给服务器状态表中当前负载参考值最低的备选服务器,且所述修改模块用于修改所述客户端对应的目标服务器为所述备选服务器。
8.如权利要求6所述的负载均衡器,其特征在于,还包括:
生成模块,用于根据所述客户端IP的散列值以及服务器的对应关系,预先生成散列值-服务器对照表;
所述生成模块,还用于预先生成含有每个服务器状态的服务器状态表,所述服务器状态包括所述服务器的资源占用率、异常连接次数、数据更新时间及负载参考值。
9.一种负载均衡系统,包括如权利要求6~8中任意一项所述的负载均衡器,其特征在于,还包括服务器:
所述服务器,用于发送资源占用率、异常连接次数;所述资源占用率包括所述服务器的CPU占用率、内存占用率和宽带占用率。
CN201710204727.5A 2017-03-30 2017-03-30 一种负载均衡方法、负载均衡器及负载均衡系统 Active CN107026907B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710204727.5A CN107026907B (zh) 2017-03-30 2017-03-30 一种负载均衡方法、负载均衡器及负载均衡系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710204727.5A CN107026907B (zh) 2017-03-30 2017-03-30 一种负载均衡方法、负载均衡器及负载均衡系统

Publications (2)

Publication Number Publication Date
CN107026907A CN107026907A (zh) 2017-08-08
CN107026907B true CN107026907B (zh) 2020-08-14

Family

ID=59526340

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710204727.5A Active CN107026907B (zh) 2017-03-30 2017-03-30 一种负载均衡方法、负载均衡器及负载均衡系统

Country Status (1)

Country Link
CN (1) CN107026907B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107682398B (zh) * 2017-08-28 2019-06-21 平安科技(深圳)有限公司 数据发送对象的选择方法、装置、计算机设备及存储介质
CN107749931A (zh) * 2017-09-29 2018-03-02 携程旅游信息技术(上海)有限公司 互动式语音应答的方法、系统、设备及存储介质
CN108173937A (zh) * 2017-12-28 2018-06-15 北京中电普华信息技术有限公司 访问控制方法和装置
CN109522118B (zh) * 2018-11-08 2021-06-01 珠海格力电器股份有限公司 一种业务处理方法、装置、服务器及可读存储介质
CN109670748A (zh) * 2018-12-13 2019-04-23 中国联合网络通信集团有限公司 库存资源管理方法、装置及存储介质
CN109617807B (zh) * 2018-12-28 2019-10-22 深圳云天励飞技术有限公司 路由信息更新方法、装置、网关及存储介质
CN110401708B (zh) * 2019-07-23 2021-11-23 中南民族大学 基于服务器负载状态的会话处理系统及方法
CN110933136A (zh) * 2019-10-31 2020-03-27 北京浪潮数据技术有限公司 一种服务节点选择方法、装置、设备及可读存储介质
CN110933181B (zh) * 2019-12-11 2024-03-15 中国银联股份有限公司 一种路由方法、装置、系统以及电子设备
CN111338793A (zh) * 2020-02-14 2020-06-26 拉扎斯网络科技(上海)有限公司 集群任务分发方法、装置、设备及存储介质
CN111556154A (zh) * 2020-04-27 2020-08-18 深圳震有科技股份有限公司 数据传输方法、装置、设备及计算机可读存储介质
CN113076192B (zh) * 2021-03-05 2023-09-01 深圳前海微众银行股份有限公司 一种负载均衡方法及装置、设备、存储介质
CN113822485B (zh) * 2021-09-27 2023-10-20 国网山东省电力公司泗水县供电公司 一种配电网调度任务优化方法及系统
CN113810304A (zh) * 2021-09-30 2021-12-17 深圳前海微众银行股份有限公司 一种负载均衡方法、装置、设备和计算机存储介质
CN115225507B (zh) * 2022-07-21 2024-03-08 天翼云科技有限公司 一种服务器组资源分配方法、装置、设备及介质
CN116107760B (zh) * 2023-04-07 2023-07-14 浪潮电子信息产业股份有限公司 一种负载均衡方法、装置、设备及介质
CN117370028B (zh) * 2023-04-19 2024-03-12 哈尔滨商业大学 一种包含门限值的电子商务信息处理方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101741658A (zh) * 2008-11-25 2010-06-16 北京中星微电子有限公司 视频监控系统以及视频监控系统中的交互方法
CN102238081A (zh) * 2010-04-26 2011-11-09 国际商业机器公司 发送ip分组流的方法和设备
CN103327072A (zh) * 2013-05-22 2013-09-25 中国科学院微电子研究所 一种集群负载均衡的方法及其系统
CN104038525A (zh) * 2013-03-07 2014-09-10 深圳市金证科技股份有限公司 服务器系统的负载均衡方法及装置
CN104202255A (zh) * 2014-08-26 2014-12-10 浪潮(北京)电子信息产业有限公司 一种高效多链路数据传输实现方法
CN105335236A (zh) * 2015-12-10 2016-02-17 厦门市美亚柏科信息股份有限公司 一种分布式取证动态负载均衡调度方法和装置
CN106027410A (zh) * 2016-07-28 2016-10-12 北京邮电大学 一种控制器负载均衡的方法及装置
CN106385468A (zh) * 2016-12-07 2017-02-08 西安电子科技大学 Web集群的可预测动态负载均衡方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7490162B1 (en) * 2002-05-15 2009-02-10 F5 Networks, Inc. Method and system for forwarding messages received at a traffic manager
CN100370770C (zh) * 2004-03-03 2008-02-20 华为技术有限公司 实现网络长连接倒换的方法
US9049198B2 (en) * 2008-10-15 2015-06-02 Aster Risk Management Llc Methods and systems for distributing pull protocol requests via a relay server
CN103236989B (zh) * 2013-04-25 2015-12-02 青岛海信传媒网络技术有限公司 一种内容分发网络中的缓存控制方法、设备及系统
CN106302781A (zh) * 2016-08-25 2017-01-04 乐视控股(北京)有限公司 路由信息分配处理方法、后台服务器和终端

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101741658A (zh) * 2008-11-25 2010-06-16 北京中星微电子有限公司 视频监控系统以及视频监控系统中的交互方法
CN102238081A (zh) * 2010-04-26 2011-11-09 国际商业机器公司 发送ip分组流的方法和设备
CN104038525A (zh) * 2013-03-07 2014-09-10 深圳市金证科技股份有限公司 服务器系统的负载均衡方法及装置
CN103327072A (zh) * 2013-05-22 2013-09-25 中国科学院微电子研究所 一种集群负载均衡的方法及其系统
CN104202255A (zh) * 2014-08-26 2014-12-10 浪潮(北京)电子信息产业有限公司 一种高效多链路数据传输实现方法
CN105335236A (zh) * 2015-12-10 2016-02-17 厦门市美亚柏科信息股份有限公司 一种分布式取证动态负载均衡调度方法和装置
CN106027410A (zh) * 2016-07-28 2016-10-12 北京邮电大学 一种控制器负载均衡的方法及装置
CN106385468A (zh) * 2016-12-07 2017-02-08 西安电子科技大学 Web集群的可预测动态负载均衡方法

Also Published As

Publication number Publication date
CN107026907A (zh) 2017-08-08

Similar Documents

Publication Publication Date Title
CN107026907B (zh) 一种负载均衡方法、负载均衡器及负载均衡系统
CN109327550B (zh) 一种访问请求的分配方法、装置、存储介质和计算机设备
CN101815033B (zh) 负载均衡的方法、设备及系统
CN110365765B (zh) 一种缓存服务器的带宽调度方法及装置
JP5514041B2 (ja) 識別子割当て方法及びプログラム
KR20170029263A (ko) 부하 분산 장치 및 방법
CN107579924B (zh) 一种流量调拨方法和装置
US9979656B2 (en) Methods, systems, and computer readable media for implementing load balancer traffic policies
CN108933829A (zh) 一种负载均衡方法及装置
CN110086886B (zh) 动态会话保持方法及装置
CN110233866B (zh) 一种负载均衡方法及负载均衡器
CN109672711B (zh) 一种基于反向代理服务器Nginx的http请求处理方法及系统
JP2005182641A (ja) 動的負荷分散システム及び動的負荷分散方法
CN110244901B (zh) 任务分配方法及装置、分布式存储系统
US20120233313A1 (en) Shared scaling server system
CN109960586B (zh) 一种服务器状态可感知的四层负载均衡器及均衡方法
CN105007336A (zh) 服务器的负载均衡方法及其系统
CN111078391A (zh) 一种业务请求处理方法、装置及设备
CN103401799A (zh) 负载均衡的实现方法和装置
CN113014611B (zh) 一种负载均衡方法及相关设备
US9106482B1 (en) Systems and methods for proxy-less load balancing
CN110198267A (zh) 一种流量调度方法、系统及服务器
US20170104683A1 (en) Dynamically segmenting traffic for a/b testing in a distributed computing environment
CN113885794A (zh) 基于多云存储的数据访问方法、装置、计算机设备及介质
US20140359135A1 (en) System and method for enabling demand-based pooling of endpoint resources in a multi-application environment

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200409

Address after: 318015 no.2-3167, zone a, Nonggang City, no.2388, Donghuan Avenue, Hongjia street, Jiaojiang District, Taizhou City, Zhejiang Province

Applicant after: Taizhou Jiji Intellectual Property Operation Co., Ltd

Address before: 201616 Shanghai city Songjiang District Sixian Road No. 3666

Applicant before: Phicomm (Shanghai) Co.,Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200720

Address after: Room 101, No. 1168, Xingang East Road, Haizhu District, Guangzhou City, Guangdong Province

Applicant after: Guangdong red food technology Co., Ltd

Address before: 318015 no.2-3167, zone a, Nonggang City, no.2388, Donghuan Avenue, Hongjia street, Jiaojiang District, Taizhou City, Zhejiang Province

Applicant before: Taizhou Jiji Intellectual Property Operation Co.,Ltd.

GR01 Patent grant
GR01 Patent grant