CN104468823B - 一种集群负载均衡调度方法及系统 - Google Patents
一种集群负载均衡调度方法及系统 Download PDFInfo
- Publication number
- CN104468823B CN104468823B CN201410816957.3A CN201410816957A CN104468823B CN 104468823 B CN104468823 B CN 104468823B CN 201410816957 A CN201410816957 A CN 201410816957A CN 104468823 B CN104468823 B CN 104468823B
- Authority
- CN
- China
- Prior art keywords
- address
- bits
- server
- result
- folded
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000008569 process Effects 0.000 claims description 7
- 238000007493 shaping process Methods 0.000 claims description 7
- 229910002056 binary alloy Inorganic materials 0.000 claims description 3
- 235000013399 edible fruits Nutrition 0.000 claims description 3
- 238000007792 addition Methods 0.000 claims 1
- 239000000047 product Substances 0.000 description 4
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 206010068052 Mosaicism Diseases 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000003765 sex chromosome Anatomy 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种集群负载均衡调度方法及系统,上述方法包括以下步骤:获取业务请求中携带的IP地址信息并对所述IP地址信息按照预设的处理策略进行处理,获得IP地址对应的二进制位数信息;根据预设的初始层级,获取当前的hash掩码并计算当前的hash掩码对应的二进制位数并将所述二进制位数作为折叠长度;根据获取的折叠长度对IP地址对应的二进制位数进行折叠,获取折叠结果;将所述折叠结果对当前掩码取余运算并根据运算结果,按照预设的服务器选择策略,确定对应的目标服务器。本发明能够大量减少瀑布式散列的集群负载均衡调度算法中hash运算的运算量,从而提高效率。
Description
技术领域
本发明属于负载均衡领域,尤其涉及一种集群负载均衡调度方法及系统。
背景技术
在集群计算中经常使用各种负载均衡算法,解决系统的可伸缩性和透明性问题,即通过负载均衡调度器将请求高效地分发到不同的服务器执行,使得由多台独立计算机组成的集群系统成为一台虚拟服务器,客户端应用程序与集群系统交互时,就像与一台高性能的服务器交互一样。
目前常见的负载均衡调度算法有轮叫调度、加权轮叫调度、最小连接调度、加权最小连接调度、基于局部性的最少链接、带复制的基于局部性最少链接、目标地址散列调度、源地址散列调度等,源地址散列调度是比较常见的静态调度算法,瀑布式散列的集群负载均衡调度算法是一种改进的源地址散列调度算法,在实际应用中,可以结合这种调度算法使用在防火墙集群中,从而保证整个系统有唯一的出入口。
但是,在瀑布式散列的集群负载均衡调度算法中,根据源IP地址乘上一个大素数再哈希当前层级的掩码,该算法的存在两个问题,问题一是当掩码位数远小于IP地址与大素数乘积的位数时,哈希运算只使用了IP地址与大素数乘积部分位,如此会使得hash结果冲突较高,需要增加层级避免,如掩码为100时,则IP地址与大素数乘积的后两位就决定了hash的结果,如果有两个IP地址,IP地址与大素数乘积的后两位相同,则得到了相同的hash值,此时就需增加瀑布层级来避免冲突,这样效率就降低了;问题二是IP地址和大素数的乘法运算属于两个大数的乘法运算,效率低。
发明内容
本发明提供一种集群负载均衡调度方法及系统,以解决上述问题。
本发明提供一种集群负载均衡调度方法,包括以下步骤:
获取业务请求中携带的IP地址信息并对所述IP地址信息按照预设的处理策略进行处理,获得IP地址对应的二进制位数信息;
根据预设的初始层级,获取当前的hash掩码并计算当前的hash掩码对应的二进制位数并将所述二进制位数作为折叠长度;
根据获取的折叠长度对IP地址对应的二进制位数进行折叠,获取折叠结果;
将所述折叠结果对当前掩码取余运算并根据运算结果,按照预设的服务器选择策略,确定对应的目标服务器。
本发明还提供一种集群负载均衡调度系统,包括IP地址二进制位数获取模块、折叠长度获取模块、折叠结果获取模块、目标服务器确定模块;其中,所述IP地址二进制位数获取模块通过所述折叠长度获取模块与所述折叠结果获取模块相连;所述折叠长度获取模块通过所述折叠结果获取模块与所述目标服务器确定模块相连;
所述IP地址二进制位数获取模块,用于获取业务请求中携带的IP地址信息并对所述IP地址信息按照预设的处理策略进行处理,获得IP地址对应的二进制位数信息并将所述IP地址对应的二进制位数信息发送至所述折叠长度获取模块;
所述折叠长度获取模块,用于根据预设的初始层级,获取当前的hash掩码并计算当前的hash掩码对应的二进制位数并将所述二进制位数作为折叠长度并将所述折叠长度发送至所述折叠结果获取模块;
所述折叠结果获取模块,用于根据获取的折叠长度对IP地址对应的二进制位数进行折叠,获取折叠结果并将所述折叠结果发送至所述目标服务器确定模块;
所述目标服务器确定模块,用于将所述折叠结果对当前掩码取余运算并根据运算结果,按照预设的服务器选择策略,确定对应的目标服务器。
本发明提供一种集群负载均衡调度方法及系统,能够大量减少瀑布式散列的集群负载均衡调度算法中hash运算的运算量,从而提高效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1所示为本发明实施例1的集群负载均衡调度方法处理流程图;
图2所示为本发明实施例2的折叠方式示意图;
图3所示为本发明实施例3的集群负载均衡调度方法处理流程图;
图4所示为本发明实施例4的集群负载均衡调度系统结构图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图1所示为本发明实施例1的集群负载均衡调度方法处理流程图,包括以下步骤:
步骤101:获取业务请求中携带的IP地址信息并对所述IP地址信息按照预设的处理策略进行处理,获得IP地址对应的二进制位数信息;
获取业务请求中携带的IP地址信息并对所述IP地址信息按照预设的处理策略进行处理,获得IP地址对应的二进制位数信息的过程为:
获取业务请求中携带的IP地址信息后,删除分割符“.”,不足三位的域加0补足三位,获取IP整型值;
通过整形二进制位数计算函数calc_bi t_len,获取IP整型值对应的二进制位数信息。
例如:IP地址信息为192.168.0.1;删除分割符“.”,不足三位的域加0补足三位(第三个域补充两个0变成000,第四个域补充两个0变成001),转化后获得IP整型值=192168000001。
calc_bit_len为整形二进制位数计算函数,二进制位数为该整形值二进制表示中最左边的1所在的位数:具体计算方法为,每次右移一位,并记录右移次数,如果最低位为1则二进制长度等于右移次数,直到整形数值为0为止。例如传入整形数为100,则其二进制表示为“01100100”,最左边的1其所在的位数为7(从右往左数),则100的二进制位数为7位。
步骤102:根据预设的初始层级,获取当前的hash掩码并计算当前的hash掩码对应的二进制位数并将所述二进制位数作为折叠长度;
预设的初始层级为0。
步骤103:根据获取的折叠长度对IP地址对应的二进制位数进行折叠,获取折叠结果;
如果折叠长度为K,则先取IP地址对应的二进制位数的低K位加入到折叠结果中,然后将IP地址对应的二进制位数右移K位,如果IP地址对应的二进制位数不为0,则继续将IP地址对应的二进制位数的低K位加入到折叠结果中,直至IP地址对应的二进制位数为0。
如图2所示,假设当前的hash掩码二进制位数为K即折叠长度,IP地址对应的二进制位数为大于2K小于3K,则根据获取的折叠长度K,将IP地址对应的二进制串分成三段,三段右对齐按位相加即可得到折叠后的IP值即折叠结果。
步骤104:将所述折叠结果对当前掩码取余运算,获得当前的hash值即服务器索引值;
该hash算法使得IP地址对应二进制位数的全部位值都参与hash运算,而且避免了大素数乘法,效率大幅提高。
步骤105:根据所述服务器索引值,获取对应的服务器,若所述服务器满足预设条件,则确定所述服务器为目标服务器并由所述目标服务器对所述请求进行处理。
所述预设条件是指:服务器的连接数目小于或等于2倍的权值。
若有一组服务器S={S0,S1,...,Sn-1},W(Si)表示服务器Si的权值,C(Si)表示服务器Si的当前连接数。ServerNode[]是包含所有服务器的数组,长度为N;初始化时,将所有服务器顺序放置到ServerNode表中;若服务器的连接数目大于2倍的权值,则表示服务器已超载。
若所述服务器不满足预设条件,则继续增加层级,直到最大层级N-1,如果到最大层级还找不到满足要求服务器则返回失败。
图3所示为本发明实施例3的集群负载均衡调度方法处理流程图,包括以下步骤:
步骤301:获取业务请求中携带的IP地址信息并对所述IP地址信息按照预设的处理策略进行处理,获得IP地址对应的二进制位数信息;
步骤302:根据预设的初始层级,获取当前的hash掩码并计算当前的hash掩码对应的二进制位数并将所述二进制位数作为折叠长度;
步骤303:根据获取的折叠长度对IP地址对应的二进制位数进行折叠,获取折叠结果;
步骤304:将所述折叠结果对当前掩码取余运算并根据运算结果,按照预设的服务器选择策略,确定对应的目标服务器。
图4所示为本发明实施例4的集群负载均衡调度系统结构图,包括IP地址二进制位数获取模块、折叠长度获取模块、折叠结果获取模块、目标服务器确定模块;其中,所述IP地址二进制位数获取模块通过所述折叠长度获取模块与所述折叠结果获取模块相连;所述折叠长度获取模块通过所述折叠结果获取模块与所述目标服务器确定模块相连;
所述IP地址二进制位数获取模块,用于获取业务请求中携带的IP地址信息并对所述IP地址信息按照预设的处理策略进行处理,获得IP地址对应的二进制位数信息并将所述IP地址对应的二进制位数信息发送至所述折叠长度获取模块;
所述折叠长度获取模块,用于根据预设的初始层级,获取当前的hash掩码并计算当前的hash掩码对应的二进制位数并将所述二进制位数作为折叠长度并将所述折叠长度发送至所述折叠结果获取模块;
所述折叠结果获取模块,用于根据获取的折叠长度对IP地址对应的二进制位数进行折叠,获取折叠结果并将所述折叠结果发送至所述目标服务器确定模块;
所述目标服务器确定模块,用于将所述折叠结果对当前掩码取余运算并根据运算结果,按照预设的服务器选择策略,确定对应的目标服务器。
本发明提供一种集群负载均衡调度方法及系统,能够大量减少瀑布式散列的集群负载均衡调度算法中hash运算的运算量,从而提高效率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种集群负载均衡调度方法,其特征在于,包括以下步骤:
获取业务请求中携带的IP地址信息并对所述IP地址信息按照预设的处理策略进行处理,获得IP地址对应的二进制位数信息;
根据预设的初始层级,获取当前的hash掩码并计算当前的hash掩码对应的二进制位数并将所述二进制位数作为折叠长度;
根据获取的折叠长度对IP地址对应的二进制串进行折叠,获取折叠结果;
将所述折叠结果对当前掩码取余运算并根据运算结果,按照预设的服务器选择策略,确定对应的目标服务器;
其中,
获取业务请求中携带的IP地址信息并对所述IP地址信息按照预设的处理策略进行处理,获得IP地址对应的二进制位数信息的过程为:
获取业务请求中携带的IP地址信息后,删除分割符“.”,不足三位的域加0补足三位,获取IP整型值;
通过整形二进制位数计算函数calc_bit_len,获取IP整型值对应的二进制位数信息,
所述计算函数calc_bit_len为整形二进制位数计算函数,二进制位数为该整形值二进制表示中最左边的1所在的位数:具体计算方法为,每次右移一位,并记录右移次数,如果最低位为1则二进制长度等于右移次数,直到整形数值为0为止;
根据获取的折叠长度对IP地址对应的二进制串进行折叠,获取折叠结果:若折叠长度为K,则先取IP地址对应的二进制串的低K位作为折叠结果中,然后将IP地址对应的二进制串右移K位,如果IP地址对应的二进制串不为0,则继续将IP地址对应的二进制串的低K位加入到折叠结果中,直至IP地址对应的二进制串为0;
将所述折叠结果对当前掩码取余运算,获得当前的hash值即服务器索引值;
根据所述服务器索引值,获取对应的服务器,若所述服务器满足预设条件,则确定所述服务器为目标服务器并由所述目标服务器对所述请求进行处理。
2.根据权利要求1所述的方法,其特征在于,若所述服务器不满足预设条件,则继续增加层级,直到最大层级N-1,如果到最大层级还找不到满足要求服务器则返回失败。
3.根据权利要求1或2所述的方法,其特征在于,所述预设条件是指:服务器的连接数目小于或等于2倍的权值。
4.根据权利要求1所述的方法,其特征在于,预设的初始层级为0。
5.根据权利要求1所述的方法,其特征在于,当前的hash掩码二进制位数为K即折叠长度,IP地址对应的二进制位数为大于2K小于3K,则根据获取的折叠长度K,将IP地址对应的二进制串分成三段,三段右对齐按位相加即可得到折叠后的IP值即折叠结果。
6.一种集群负载均衡调度系统,其特征在于,包括IP地址二进制位数获取模块、折叠长度获取模块、折叠结果获取模块、目标服务器确定模块;其中,所述IP地址二进制位数获取模块通过所述折叠长度获取模块与所述折叠结果获取模块相连;所述折叠长度获取模块通过所述折叠结果获取模块与所述目标服务器确定模块相连;
所述IP地址二进制位数获取模块,用于获取业务请求中携带的IP地址信息并对所述IP地址信息按照预设的处理策略进行处理,获得IP地址对应的二进制位数信息并将所述IP地址对应的二进制位数信息发送至所述折叠长度获取模块;
所述折叠长度获取模块,用于根据预设的初始层级,获取当前的hash掩码并计算当前的hash掩码对应的二进制位数并将所述二进制位数作为折叠长度并将所述折叠长度发送至所述折叠结果获取模块;所述折叠结果获取模块,用于根据获取的折叠长度对IP地址对应的二进制串进行折叠,获取折叠结果并将所述折叠结果发送至所述目标服务器确定模块;
所述目标服务器确定模块,用于将所述折叠结果对当前掩码取余运算并根据运算结果,按照预设的服务器选择策略,确定对应的目标服务器;
其中,
获取业务请求中携带的IP地址信息并对所述IP地址信息按照预设的处理策略进行处理,获得IP地址对应的二进制位数信息的过程为:
获取业务请求中携带的IP地址信息后,删除分割符“.”,不足三位的域加0补足三位,获取IP整型值;
通过整形二进制位数计算函数calc_bit_len,获取IP整型值对应的二进制位数信息,
所述计算函数calc_bit_len为整形二进制位数计算函数,二进制位数为该整形值二进制表示中最左边的1所在的位数:具体计算方法为,每次右移一位,并记录右移次数,如果最低位为1则二进制长度等于右移次数,直到整形数值为0为止;
根据获取的折叠长度对IP地址对应的二进制串进行折叠,获取折叠结果:若折叠长度为K,则先取IP地址对应的二进制串的低K位作为折叠结果中,然后将IP地址对应的二进制串右移K位,如果IP地址对应的二进制串不为0,则继续将IP地址对应的二进制串的低K位加入到折叠结果中,直至IP地址对应的二进制串为0;
将所述折叠结果对当前掩码取余运算,获得当前的hash值即服务器索引值;
根据所述服务器索引值,获取对应的服务器,若所述服务器满足预设条件,则确定所述服务器为目标服务器并由所述目标服务器对所述请求进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410816957.3A CN104468823B (zh) | 2014-12-24 | 2014-12-24 | 一种集群负载均衡调度方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410816957.3A CN104468823B (zh) | 2014-12-24 | 2014-12-24 | 一种集群负载均衡调度方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104468823A CN104468823A (zh) | 2015-03-25 |
CN104468823B true CN104468823B (zh) | 2018-02-06 |
Family
ID=52914174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410816957.3A Active CN104468823B (zh) | 2014-12-24 | 2014-12-24 | 一种集群负载均衡调度方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104468823B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106331004A (zh) * | 2015-06-25 | 2017-01-11 | 中兴通讯股份有限公司 | 服务器负载均衡的方法及装置 |
CN110011928B (zh) * | 2019-04-19 | 2022-08-19 | 平安科技(深圳)有限公司 | 流量均衡负载方法、装置、计算机设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1570903A (zh) * | 2003-07-23 | 2005-01-26 | 华为技术有限公司 | 一种服务器负载均衡方法 |
CN103401799A (zh) * | 2013-07-30 | 2013-11-20 | 曙光信息产业(北京)有限公司 | 负载均衡的实现方法和装置 |
CN104104611A (zh) * | 2014-07-10 | 2014-10-15 | 浪潮(北京)电子信息产业有限公司 | 一种实现集群负载均衡调度的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9319300B2 (en) * | 2008-12-09 | 2016-04-19 | Glue Networks, Inc. | Systems and methods for determining endpoint configurations for endpoints of a virtual private network (VPN) and deploying the configurations to the endpoints |
-
2014
- 2014-12-24 CN CN201410816957.3A patent/CN104468823B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1570903A (zh) * | 2003-07-23 | 2005-01-26 | 华为技术有限公司 | 一种服务器负载均衡方法 |
CN103401799A (zh) * | 2013-07-30 | 2013-11-20 | 曙光信息产业(北京)有限公司 | 负载均衡的实现方法和装置 |
CN104104611A (zh) * | 2014-07-10 | 2014-10-15 | 浪潮(北京)电子信息产业有限公司 | 一种实现集群负载均衡调度的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104468823A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11848869B2 (en) | Selection of paired transmit queue | |
CN105391797B (zh) | 基于sdn的云服务器负载均衡方法及装置 | |
RU2607621C2 (ru) | Способ, система и машиночитаемый носитель данных для группирования в социальных сетях | |
US9665284B2 (en) | Partition extension method and apparatus | |
US9875126B2 (en) | Hash-based load balancing for bonded network interfaces | |
JP2016528626A (ja) | 作業密度を増加させ、エネルギー効率を向上させるための電力バランシング | |
US20200242604A1 (en) | Transaction selection device for selecting blockchain transactions | |
CN109447276B (zh) | 一种机器学习系统、设备及应用方法 | |
KR20150019359A (ko) | 분산 시스템에서 데이터를 처리하는 방법 | |
CN104881322A (zh) | 一种基于装箱模型的集群资源调度方法及装置 | |
CN104468823B (zh) | 一种集群负载均衡调度方法及系统 | |
CN107094119A (zh) | 一种基于云计算和sdn网络的负载均衡控制方法及系统 | |
Ke et al. | Aggregation on the fly: Reducing traffic for big data in the cloud | |
Zhu et al. | Service function chain mapping with resource fragmentation avoidance | |
CN104283963A (zh) | 一种分布合作式的cdn负载均衡方法 | |
US20130067113A1 (en) | Method of optimizing routing in a cluster comprising static communication links and computer program implementing that method | |
Imdoukh et al. | Optimizing scheduling decisions of container management tool using many‐objective genetic algorithm | |
CN104104611B (zh) | 一种实现集群负载均衡调度的方法及装置 | |
US11563715B2 (en) | Pattern matching by a network device for domain names with wildcard characters | |
CN115587222A (zh) | 分布式图计算方法、系统及设备 | |
Shi et al. | Smart shuffling in MapReduce: a solution to balance network traffic and workloads | |
Pasdar et al. | Data-aware scheduling of scientific workflows in hybrid clouds | |
US11558775B2 (en) | Determining rate differential weighted fair output queue scheduling for a network device | |
US20130070647A1 (en) | Method of pseudo-dynamic routing in a cluster comprising static communication links and computer program implementing that method | |
Mao et al. | A fine-grained and dynamic MapReduce task scheduling scheme for the heterogeneous cloud environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |