CN106856505A - 基于hash算法的服务器均衡方法 - Google Patents
基于hash算法的服务器均衡方法 Download PDFInfo
- Publication number
- CN106856505A CN106856505A CN201611215924.9A CN201611215924A CN106856505A CN 106856505 A CN106856505 A CN 106856505A CN 201611215924 A CN201611215924 A CN 201611215924A CN 106856505 A CN106856505 A CN 106856505A
- Authority
- CN
- China
- Prior art keywords
- server
- hash algorithm
- annular space
- hash
- data
- 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
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
-
- 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
- H04L67/1031—Controlling 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于hash算法的服务器均衡方法。其包括构建集群服务器环境的数据环形空间,采用hash算法分别计算每一个对象集的key值,根据key值将对应对象散列到数据环形空间中,将对应服务器映射到数据环形空间中并采用顺时针方式将对象与服务器进行关联,当对服务器进行增删时采用顺时针迁移方式对服务器上的对象进行迁移。本发明采用hash算法很好的将对象映射到对应的服务上,避免了大量数据的迁移,减小了服务器压力,使服务器集群在面临大数据量、高并发系统性能方面得到很好的处理;同时通过配置虚拟节点有效降低了负载服务器的不平衡性,提高了服务器节点的利用率。
Description
技术领域
本发明属于集群服务器技术领域,尤其涉及一种基于hash算法的服务器均衡方法。
背景技术
随着互联网快速的发展,互联网用户的不断增加,单服务肯定不能满足服务的需求,集群服务模式已经逐渐普及,使用集群服务器做后台,一个主要的问题就是解决负载均衡问题。而传统的均衡算法主要是持续性和非持续性的服务器均衡,持续性就是特定的客户端发出请求将由同一服务器服务,持续算法主要基于随机理论,即其默认客户的访问是随机的,从而服务器的选择也是随机的,以此来实现负载均衡,持续性算法的缺点在于其不易于动态的更新,比如使用IP地址的hash值进行分配,刚好某个IP非常平凡的请求服务,而这些服务将被定向到同一服务器,很容易出现服务器热点的情况;非持续算法如轮询算法对于每一次请求,一次选择服务器组的下一个服务器,算法简单易实现,适用于所有服务器在软硬件配置相当的情况,如果不同的服务器在处理能力上差别很大,该算法效果会很差,导致处理能力强的服务器空闲而处理能力弱的服务器一直吃力处理请求。
分布式集群中,对机器的添加或者删除以及机器发生故障需要脱离集群这些操作都是分布式集群管理的基本功能,常规算法hash(obj)%m算法,在机器添加或删除后,会有很多原有的数据无法找到违反了数据单调性原则,同样如果集群机器被删除,而对象分配出现失衡(例如:三台集群服务器server1、server2、server3,obj1存储在server1,obj2存储在server2,obj3、obj4存储在server3。当服务器server2被删除时,obj1存储在server1,obj2、obj3、obj4存储在server3),这样就造成集群对象服务器分布非常不平衡,造成了服务器负载的不均衡。
发明内容
本发明的发明目的是:为了解决现有技术中存在的以上问题,本发明提出了一种解决集群服务器数据单调性和平衡性的基于hash算法的服务器均衡方法。
本发明的技术方案是:一种基于hash算法的服务器均衡方法,包括:
A、构建集群服务器环境的数据环形空间;
B、获取步骤A中集群服务器环境中的对象集,采用hash算法分别计算每一个对象集的key值;
C、根据步骤B中计算得到的key值将对应对象散列到步骤A中构建的数据环形空间中;
D、获取步骤A中集群服务器的对应服务器的serverkey,将服务器的serverkey转换为映射空间地址,将对应服务器映射到步骤A中构建的数据环形空间中;并采用顺时针方式将对象与服务器进行关联;
E、当对服务器进行增删时,采用顺时针迁移方式对服务器上的对象进行迁移,实现服务器均衡。
进一步地,所述步骤E对服务器进行删除时,计算该服务器上对象的hash值,采用顺时针迁移方法将对象映射到相近的服务器上。
进一步地,所述步骤E对服务器进行增添时,将实际负载服务节点复制形成虚拟节点,分别计算虚拟节点的hash值并将虚拟节点映射到数据环形空间中;再采用hash算法分别对象的key值,并采用顺时针迁移方法将各个对象分布到虚拟节点上。
本发明的有益效果是:本发明采用hash算法很好的将对象映射到对应的服务上,避免了大量数据的迁移,减小了服务器压力,使服务器集群在面临大数据量、高并发系统性能方面得到很好的处理;同时通过配置虚拟节点有效降低了负载服务器的不平衡性,提高了服务器节点的利用率。
附图说明
图1是本发明的基于hash算法的服务器均衡方法流程示意图。
图2是本发明实施例中采用hash算法分别计算每一个对象集的key值的流程示意图。
图3是本发明实施例中将对应对象散列到数据环形空间中示意图。
图4是本发明实施例中将服务器映射到数据环形空间中示意图。
图5是本发明实施例中删除服务器示意图。
图6是本发明实施例中增添服务器示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示,为本发明的基于hash算法的服务器均衡方法流程示意图。一种基于hash算法的服务器均衡方法,包括:
A、构建集群服务器环境的数据环形空间;
B、获取步骤A中集群服务器环境中的对象集,采用hash算法分别计算每一个对象集的key值;
C、根据步骤B中计算得到的key值将对应对象散列到步骤A中构建的数据环形空间中;
D、获取步骤A中集群服务器的对应服务器的serverkey,将服务器的serverkey转换为映射空间地址,将对应服务器映射到步骤A中构建的数据环形空间中;并采用顺时针方式将对象与服务器进行关联;
E、当对服务器进行增删时,采用顺时针迁移方法对服务器上的对象进行迁移,实现服务器均衡。
在步骤A中,本发明首先构建集群服务器环境的数据环形空间,具体为一个长度为2^32的整数hash环,根据节点name,hash(name)分布为[0,2^32-1]将服务器节点放置于hash环上。
在步骤B中,如图2所示,为本发明实施例中采用hash算法分别计算每一个对象集的key值的流程示意图。本发明根据集群程序逻辑,初始化5个服务器处理对象分别为:obj1、obj2、obj3、obj4、obj5,从而获取得到步骤A中集群服务器环境中的需要映射的对象集obj1\obj2\obj3\obj4\obj5;本发明再设置变量a、b,采用hash算法分别计算每一个对象集的key值,具体为:
在步骤C中,如图3所示,为本发明实施例中将对应对象散列到数据环形空间中示意图。本发明根据步骤B中计算得到的key值将对应对象散列到步骤A中构建的数据环形空间中,这里的散列算法具体为:
char*value=’key1’;int key1=((((((32*(int)’k’+32)*(int)’e’)+32*(int)’y’+32)*32)+(int)’1’
从而依次得到对应对象的key2、key3、key4、key5,根据对应的key值映射入数据环形空间中。由于本身hash数据空间环不会发生变化,只需算出对象的hash值就能很快的定为到对应的服务器中直接找到对象的真正储存位置。
在步骤D中,如图4所示,为本发明实施例中将服务器映射到数据环形空间中示意图。本发明以3个集群服务器server1、server2、server3进行说明,分别获取对应服务器的serverkey,并根据散列算法转换得到最终的映射空间地址hash值serverkey1、serverkey2、serverkey3,将对应的集群服务器映射入数据环形空间中,具体为:
将集群服务器映射到数据环形空间后,采用hash算法顺时针方式将对象与服务器进行关联。
在步骤E中,本发明可以针对从集群服务器中删除服务器和增添服务器到集群服务器中的两种情况进行处理。
对服务器进行删除时,计算该服务器上对象的hash值,采用顺时针迁移方法将对象映射到相近的服务器上。如图5所示,为本发明实施例中删除服务器示意图。例如集群服务器server2出现故障删除,基于对象hash算法采用顺时针迁移方法,key4、key5将会迁移到服务器节点server3上,其余节点数据不变。
对服务器进行增添时,将实际负载服务节点复制形成虚拟节点,分别计算虚拟节点的hash值并将虚拟节点映射到数据环形空间中;再采用hash算法分别对象的key值,并采用顺时针迁移方法将各个对象分布到虚拟节点上。如图6所示,为本发明实施例中增添服务器示意图。例如需要接入一台新的服务器server4,通过虚拟节点的hash算法,将实际负载服务节点复制,形成一个个复制服务虚拟节点(replica),类似server1-1、server2-1、server2-2、server3-1等虚拟节点,通过虚拟节点和实际节点的转换获取对象数据信息。
1)构建虚拟节点的hash计算方法,计算出相应的虚拟节点的hash值;
2)将通过计算出的虚拟节点hash值将虚拟节点映射进hash数据空间中;
3)通过对象hash算法获取对象key,顺时针将各个对象分布到服务器节点或虚拟节点上按照hash值排列法将虚拟节点映射到hash数据空间中;
通过上述计算方法计算出server4的hash值serverkey4,根据serverkey4将服务器节点映射入数据空间中,对象节点key5将基于hash算法顺时针迁移到新的服务器节点server4上。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
Claims (3)
1.一种基于hash算法的服务器均衡方法,其特征在于,包括:
A、构建集群服务器环境的数据环形空间;
B、获取步骤A中集群服务器环境中的对象集,采用hash算法分别计算每一个对象集的key值;
C、根据步骤B中计算得到的key值将对应对象散列到步骤A中构建的数据环形空间中;
D、获取步骤A中集群服务器的对应服务器的serverkey,将服务器的serverkey转换为映射空间地址,将对应服务器映射到步骤A中构建的数据环形空间中;并采用顺时针方式将对象与服务器进行关联;
E、当对服务器进行增删时,采用顺时针方式对服务器上的对象进行迁移,实现服务器均衡。
2.如权利要求1所述的基于hash算法的服务器均衡方法,其特征在于,所述步骤E对服务器进行删除时,计算该服务器上对象的hash值,采用顺时针迁移方法将对象映射到相近的服务器上。
3.如权利要求2所述的基于hash算法的服务器均衡方法,其特征在于,所述步骤E对服务器进行增添时,将实际负载服务节点复制形成虚拟节点,分别计算虚拟节点的hash值并将虚拟节点映射到数据环形空间中;再采用hash算法分别对象的key值,并采用顺时针迁移方法将各个对象分布到虚拟节点上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611215924.9A CN106856505A (zh) | 2016-12-26 | 2016-12-26 | 基于hash算法的服务器均衡方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611215924.9A CN106856505A (zh) | 2016-12-26 | 2016-12-26 | 基于hash算法的服务器均衡方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106856505A true CN106856505A (zh) | 2017-06-16 |
Family
ID=59126615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611215924.9A Pending CN106856505A (zh) | 2016-12-26 | 2016-12-26 | 基于hash算法的服务器均衡方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106856505A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107329827A (zh) * | 2017-06-22 | 2017-11-07 | 平安科技(深圳)有限公司 | 支持哈希调度策略的lvs调度方法、设备及存储介质 |
WO2020073539A1 (zh) * | 2018-10-12 | 2020-04-16 | 山东科技大学 | 一种分布式缓存服务器集群的性能优化方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104050270A (zh) * | 2014-06-23 | 2014-09-17 | 成都康赛信息技术有限公司 | 一种基于一致性哈希算法的分布式存储方法 |
CN104301425A (zh) * | 2014-10-24 | 2015-01-21 | 南方电网科学研究院有限责任公司 | 基于对象类型和哈希环的对象注册中心服务集群实现方法 |
CN105187547A (zh) * | 2015-09-25 | 2015-12-23 | 浪潮(北京)电子信息产业有限公司 | 一种负载均衡方法与系统 |
US20160088072A1 (en) * | 2014-09-19 | 2016-03-24 | Facebook, Inc. | Balancing load across cache servers in a distributed data store |
CN105516231A (zh) * | 2014-10-20 | 2016-04-20 | 中国电信股份有限公司 | 一种基于改进一致性哈希分布式缓存的方法和系统 |
-
2016
- 2016-12-26 CN CN201611215924.9A patent/CN106856505A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104050270A (zh) * | 2014-06-23 | 2014-09-17 | 成都康赛信息技术有限公司 | 一种基于一致性哈希算法的分布式存储方法 |
US20160088072A1 (en) * | 2014-09-19 | 2016-03-24 | Facebook, Inc. | Balancing load across cache servers in a distributed data store |
CN105516231A (zh) * | 2014-10-20 | 2016-04-20 | 中国电信股份有限公司 | 一种基于改进一致性哈希分布式缓存的方法和系统 |
CN104301425A (zh) * | 2014-10-24 | 2015-01-21 | 南方电网科学研究院有限责任公司 | 基于对象类型和哈希环的对象注册中心服务集群实现方法 |
CN105187547A (zh) * | 2015-09-25 | 2015-12-23 | 浪潮(北京)电子信息产业有限公司 | 一种负载均衡方法与系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107329827A (zh) * | 2017-06-22 | 2017-11-07 | 平安科技(深圳)有限公司 | 支持哈希调度策略的lvs调度方法、设备及存储介质 |
WO2018233372A1 (zh) * | 2017-06-22 | 2018-12-27 | 平安科技(深圳)有限公司 | 支持哈希调度策略的lvs调度方法、设备、装置及存储介质 |
WO2020073539A1 (zh) * | 2018-10-12 | 2020-04-16 | 山东科技大学 | 一种分布式缓存服务器集群的性能优化方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11438383B2 (en) | Controlling permissible actions a computing device can perform on a data resource based on a use policy evaluating an authorized context of the device | |
CN108551474B (zh) | 一种服务器集群的负载均衡方法 | |
US8103767B2 (en) | Method and apparatus for distributing requests among a plurality of resources | |
Li et al. | A limited resource model of fault-tolerant capability against cascading failure of complex network | |
WO2021003935A1 (zh) | 数据集群存储的方法、装置及计算机设备 | |
CN102882973A (zh) | 基于p2p技术的分布式负载均衡系统和方法 | |
CN106503139A (zh) | 动态数据存取方法及系统 | |
CN103379138A (zh) | 实现负载均衡的方法及系统和灰度发布的方法及装置 | |
WO2016210411A1 (en) | Object based storage cluster with multiple selectable data handling policies | |
JP6582445B2 (ja) | シンクライアントシステム、接続管理装置、仮想マシン稼働装置、方法、および、プログラム | |
CN106210015A (zh) | 一种混合云结构中热度数据缓存的云存储方法 | |
CN106856505A (zh) | 基于hash算法的服务器均衡方法 | |
US20090144404A1 (en) | Load management in a distributed system | |
CN111159193A (zh) | 多层一致性哈希环及其在创建分布式数据库中的应用 | |
CN113608876A (zh) | 基于负载类型感知的分布式文件系统元数据负载均衡方法 | |
US20220374540A1 (en) | Field level encryption searchable database system | |
Li et al. | A data placement strategy based on clustering and consistent hashing algorithm in cloud computing | |
CN113688115B (zh) | 一种基于Hadoop的档案大数据分布式存储系统 | |
US20180084061A1 (en) | Stateless technique for distributing data uploads | |
Lee et al. | A new cloaking algorithm using Hilbert curves for privacy protection | |
CN112866386A (zh) | 一种基于云计算的数据存储数据搭建方法 | |
JP2016157367A (ja) | 分散処理システム | |
Sawiris et al. | A novel solution for distributed database problems | |
CN109656696A (zh) | 一种数据api高效调用的处理方法 | |
Sun et al. | A technique for preventing replay attack in road networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170616 |
|
RJ01 | Rejection of invention patent application after publication |