CN106856505A - 基于hash算法的服务器均衡方法 - Google Patents

基于hash算法的服务器均衡方法 Download PDF

Info

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
Application number
CN201611215924.9A
Other languages
English (en)
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.)
CHENGDU COMSYS INFORMATION TECHNOLOGY Co Ltd
Original Assignee
CHENGDU COMSYS INFORMATION 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 CHENGDU COMSYS INFORMATION TECHNOLOGY Co Ltd filed Critical CHENGDU COMSYS INFORMATION TECHNOLOGY Co Ltd
Priority to CN201611215924.9A priority Critical patent/CN106856505A/zh
Publication of CN106856505A publication Critical patent/CN106856505A/zh
Pending legal-status Critical Current

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
    • 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于hash算法的服务器均衡方法。其包括构建集群服务器环境的数据环形空间,采用hash算法分别计算每一个对象集的key值,根据key值将对应对象散列到数据环形空间中,将对应服务器映射到数据环形空间中并采用顺时针方式将对象与服务器进行关联,当对服务器进行增删时采用顺时针迁移方式对服务器上的对象进行迁移。本发明采用hash算法很好的将对象映射到对应的服务上,避免了大量数据的迁移,减小了服务器压力,使服务器集群在面临大数据量、高并发系统性能方面得到很好的处理;同时通过配置虚拟节点有效降低了负载服务器的不平衡性,提高了服务器节点的利用率。

Description

基于hash算法的服务器均衡方法
技术领域
本发明属于集群服务器技术领域,尤其涉及一种基于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值,并采用顺时针迁移方法将各个对象分布到虚拟节点上。
CN201611215924.9A 2016-12-26 2016-12-26 基于hash算法的服务器均衡方法 Pending CN106856505A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 中国电信股份有限公司 一种基于改进一致性哈希分布式缓存的方法和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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