CN112650451B - 查找网络服务器的优化方法、装置、计算机设备及存储介质 - Google Patents

查找网络服务器的优化方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN112650451B
CN112650451B CN202011584917.2A CN202011584917A CN112650451B CN 112650451 B CN112650451 B CN 112650451B CN 202011584917 A CN202011584917 A CN 202011584917A CN 112650451 B CN112650451 B CN 112650451B
Authority
CN
China
Prior art keywords
numbers
server
prime
network
hash
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
CN202011584917.2A
Other languages
English (en)
Other versions
CN112650451A (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.)
Hangzhou Qulian Technology Co Ltd
Original Assignee
Hangzhou Qulian 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 Hangzhou Qulian Technology Co Ltd filed Critical Hangzhou Qulian Technology Co Ltd
Priority to CN202011584917.2A priority Critical patent/CN112650451B/zh
Publication of CN112650451A publication Critical patent/CN112650451A/zh
Application granted granted Critical
Publication of CN112650451B publication Critical patent/CN112650451B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种查找网络服务器的优化方法、装置、计算机设备及存储介质,应用于网络服务器领域,用于解决现有查找网络服务器的技术存在占用网络资源多、复杂程度高、实现难度大的问题。本发明提供的方法包括:接收服务器查找请求,服务器查找请求包括需要查找的数据对象;基于一致性哈希算法计算数据对象的哈希值;从配置服务器中查询当前所有开启的网络服务器所对应的当前编号和,从中获取当前所有开启的网络服务器的编号,并对编号进行排序,以获得编号数列;将哈希值插入编号数列所对应的数列环中;在数列环上查找到与哈希值相邻的编号,以确定相应的网络服务器。

Description

查找网络服务器的优化方法、装置、计算机设备及存储介质
技术领域
本发明涉及网络服务器领域,尤其涉及一种查找网络服务器的优化方法、装置、计算机设备及存储介质。
背景技术
网络分布式集群一般使用一致性hash算法来确定网络存储的节点,一致性hash查找节点并非直接命中,而是需要算法来查找目标节点。
现有技术中有按顺时针顺序查找、查表法、或者查树法来查找目标节点,但是上述方法都有缺陷,占用的网络资源较多。按顺时针顺序查找第一个服务器就是需要寻找的网络服务器,时间复杂度是O(N);在查表法中,每个节点都需要维护一张路由表,并且每个路由表都是不相同的,每个节点需要占用一定资源;而查树法的数据结构复杂,算法实现难度大,而且对于数量级低的情况完全是增加算法复杂程度。因此,现有查找网络服务器的技术存在占用网络资源多、复杂程度高、实现难度大的问题。
发明内容
本发明实施例提供一种基于一致性哈希算法查找网络服务器的优化方法、装置、计算机设备及存储介质,以解决现有查找网络服务器的技术存在占用网络资源多、复杂程度高、实现难度大的问题。
一种基于一致性哈希算法查找网络服务器的优化方法,包括:
接收服务器查找请求,其中,所述服务器查找请求包括需要查找的数据对象;
基于一致性哈希算法计算所述数据对象的哈希值;
从配置服务器中查询当前所有开启的网络服务器所对应的当前编号和,从中获取当前所有开启的网络服务器的编号,并对所述编号进行排序,以获得编号数列;其中,所述网络服务器的编号是素数,所述当前编号和由当前所有开启的网络服务器的编号相加得到;
将所述哈希值插入所述编号数列所对应的数列环中;
在所述数列环上查找到与所述哈希值相邻的编号,以确定相应的网络服务器;其中,所述数列环的首端和末端相连且分别对应所述编号数列的首位编号和末位编号。
一种基于一致性哈希算法查找网络服务器的优化装置,包括:
接收模块,用于接收服务器查找请求,其中,所述服务器查找请求包括需要查找的数据对象;
哈希求值模块,用于基于一致性哈希算法计算所述数据对象的哈希值;
编号排序模块,用于从配置服务器中查询当前所有开启的网络服务器所对应的当前编号和,从中获取当前所有开启的网络服务器的编号,并对所述编号进行排序,以获得编号数列;其中,所述网络服务器的编号是素数,所述当前编号和由当前所有开启的网络服务器的编号相加得到;
插入模块,用于将所述哈希值插入所述编号数列所对应的数列环中;
查找服务器模块,用于在所述数列环上查找到与所述哈希值相邻的编号,以确定相应的网络服务器;其中,所述数列环的首端和末端相连且分别对应所述编号数列的首位编号和末位编号。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于一致性哈希算法查找网络服务器的优化方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于一致性哈希算法查找网络服务器的优化方法的步骤。
本发明实施例提出的基于一致性哈希算法查找网络服务器的优化方法、装置、计算机设备及存储介质,首先接收服务器查找请求,其中,服务器查找请求包括需要查找的数据对象;基于一致性哈希算法计算该数据对象的哈希值;从配置服务器中查询当前所有开启的网络服务器所对应的当前编号和,从中获取当前所有开启的网络服务器的编号,并对所述编号进行排序,以获得编号数列;将哈希值插入编号数列所对应的数列环中;在数列环上查找到与哈希值相邻的编号,以确定相应的网络服务器;其中数列环的首端和末端相连且分别对应编号数列的首位编号和末位编号。整个网络服务器分布集群通过配置服务器对当前编号和、编号集合以及编号和集合进行哈希维护,加快了查找速率,同时,当前编号和结构简单,便于占用的较少的网络资源查找目标网络服务器,解决了现有查找网络服务器的技术存在占用网络资源多、复杂程度高、实现难度大的问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中基于一致性哈希算法查找网络服务器的优化方法的一应用环境示意图;
图2是本发明一实施例中基于一致性哈希算法查找网络服务器的优化方法的一流程图;
图3是本发明另一实施例中基于一致性哈希算法查找网络服务器的优化方法的一交互流程图;
图4是本发明一实施例中基于一致性哈希算法查找网络服务器的优化装置的一数列环;
图5是本发明一实施例中基于一致性哈希算法查找网络服务器的优化装置的结构示意图;
图6是本发明一实施例中服务器的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的基于一致性哈希算法查找网络服务器的优化方法,可应用在如图1的应用环境中,其中,计算机设备/终端设备通过网络与服务器进行通信。其中,计算机设备/终端设备可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一实施例中,如图2所示,提供一种基于一致性哈希算法查找网络服务器的优化方法,以该方法应用在图1中的服务器为例进行说明,包括如下步骤S101至S105:
S101、接收服务器查找请求,其中,服务器查找请求包括需要查找的数据对象。
在步骤S101中,上述服务器查找请求还包括需要查找的服务器类型,该服务器类型包括但不限于缓存服务器、数据库服务器和区块链数据备份服务器。
S102、基于一致性哈希算法计算数据对象的哈希值。
S103、从配置服务器中查询当前所有开启的网络服务器所对应的当前编号和,从当前编号和中获取当前所有开启的网络服务器的编号,并对编号进行排序,以获得编号数列;其中,网络服务器的编号是素数,当前编号和由当前所有开启的网络服务器的编号相加得到。
在步骤S103中,因为网络服务器的编号为素数,当前编号和由当前所有开启的网络服务器的编号相加得到,所以当前编号和是由若干个素数相加得到,素数相加得到的结果具有唯一性,因此通过当前编号和,可以确定由当前所有开启的网络服务器的编号形成的唯一编号组合,从而对这个编号组合中的编号进行排序便可得到编号数列。
S104、将哈希值插入编号数列所对应的数列环中。
在步骤S104中,其具体是:通过二分查找算法,将哈希值插入编号数列所对应的数列环中。
此处需要说明的是:二分查找算法是针对已经排序好的编号数列,确定该编号数列的中间值,将哈希值与该中间值比较,若哈希值与该中间值相等,则将哈希值插入到该中间值后面;若哈希值与该中间值不相等,则重新确定查找区域,该查找区域是该编号数列缩小一半的区域,重新确定该查找区域的中间值,再将哈希值与该中间值比较,直到将哈希值插入到该中间值后面为止。
S105、在数列环上查找到与哈希值相邻的编号,以确定相应的网络服务器;其中,数列环的首端和末端相连且分别对应编号数列的首位编号和末位编号。
为了更好地说明上述实施例,如图4所示,结合实例对步骤S101至S105作进一步的说明:
例如,假设服务器查找请求为缓存服务器查找请求,需要查找的数据对象为数据对象A,该数据对象A的哈希值为5,当前开启的网络服务器的编号为2、3和32771,当前编号和为32776,数列环中编号设置顺序为顺时针。
接收缓存服务器请求,基于一致性哈希算法计算出数据对象A的哈希值5。基于步骤S103,从配置服务器中查询当前所有开启的网络服务器所对应的当前编号和32776,根据当前编号和32776可以确定当前开启的网络服务器是编号为2、3和32771的网络服务器。对编号2、3和32771进行排序,获得编号数列{2,3,32771}。
基于步骤S104,通过二分查找算法,将哈希值5与该编号数列的中间值3比较,哈希值5大于中间值3,则重新确定查找区域{3,32771},该查找区域的中间值为16387,哈希值5小于中间值16387,当前查找区域小于16387只有3,则可以确定将哈希值5插入到3后面并得到该编号数列对应的数列环{2,3,5,32771}。基于步骤S105,逆时针在数列环上查找到与哈希值相邻的编号,以确定与哈希值5相对应的网络服务器的编号为3。
在本发明另一实施例中,如图3所示,在步骤S101之前还包括如下步骤S001至S004:
S001、根据一致性哈希算法,构造哈希环。
S002、根据已完成初始化处理的网络服务器的数量,构造编号集合与编号和集合,其中,编号集合包括与网络服务器的数量相等的素数。
S003、对网络服务器进行编号处理,其中,一个网络服务器的编号对应编号集合中的一个素数。
S004、将网络服务器的编号映射至哈希环上所对应的哈希值,以使网络服务器与哈希环形成映射关系。
在该实施例中,步骤S002具体包括如下步骤:
a、根据已完成初始化处理的网络服务器的数量,确定编号集合中的素数目标数量;
b、根据素数目标数量,从哈希环中选取不同的素数加入编号集合,直至编号集合中的素数数量与素数目标数量相等;
c、从编号集合中选取任意数量的素数进行求和以得到相应的素数和,并将所有素数和所形成的集合作为编号和集合。
为了更好地说明上述实施例,以下结合实例对上述步骤S001至S004作进一步的说明:
例如,假设构造一个哈希环,范围为【0,217-1】,已完成初始化处理的网络服务器的数量为2。
基于步骤a,根据已完成初始化处理的网络服务器的数量为2,则确定编号集合中的素数目标数量为2。基于步骤b,在范围为【0,217-1】中选取了两个素数,假设选取的两个素数为2和32771,则编号集合为{2,32771}。
基于步骤c,从上述编号集合中,选取数量为1的素数和数量为2的素数进行求和。有3种选取情况,分别为:选取素数2、选取素数32771以及选取素数2和32771。对上述3种选取情况分别进行求和,得到的素数和分别是2、32771、32773,则编号和集合则为上述得到的素数和组成的集合{2,32771,32773}。
基于步骤S003,将编号集合中的素数对已完成初始化处理的两个网络服务器进行编号处理,分别为网络服务器2,网络服务器32771。基于步骤S004,根据网络服务器的编号,将网络服务器2映射部署到哈希环上哈希值为2的地方,将网络服务器32771映射部署到哈希环上哈希值为32771的地方,使上述两个网络服务器与所述哈希环形成映射关系。
在本发明又一实施例中,所述基于一致性哈希算法查找网络服务器的优化方法进一步包括步骤A至D:
A、当需要增加部署的网络服务器时,根据需增加的网络服务器所对应的新增数量,从哈希环中选取不同的素数加入编号集合,直至编号集合中所新增的素数数量等于网络服务器的新增数量为止。
B、根据编号集合中所新增的素数,对需要增加部署的网络服务器进行编号处理。
C、将需增加的网络服务器的编号映射至哈希环上所对应的哈希值,以使需增加的网络服务器与哈希环形成映射关系。
D、更新编号和集合。
上述步骤D具体为:
在新增素数后的编号集合中选取任意数量的素数进行求和以得到相应的素数和,判断相应的素数和是否在编号和集合中,如果该素数和不在编号和集合中,则将该素数和加入到编号和集合中。
为了更好地说明上述实施例,以下结合实例对步骤A至D作进一步的说明:
例如,假设构造一个哈希环,范围为【0,217-1】,编号集合为{2,32771},编号集合为{2,32771,32773}。
当需要增加1台新的网络服务器时,在范围【0,217-1】选取一个不同于2,32771的素数。假设此时选取的素数为3,则新的编号集合为{2,3,32771}。
基于步骤C,根据网络服务器的编号,将网络服务器3映射部署到哈希环上哈希值为3的地方,使上述网络服务器3与所述哈希环形成映射关系。
基于步骤D,在新的编号集合为{2,3,32771}选取任意数量的素数进行相加,得到素数和2、3、5、32771、32773、32774、32776。上述素数和3、5、32774、32776均不在原来的编号和集合{2,32771,32773}中,将上述素数和加入编号和集合中,获得更新后的编号和集合{2,3,5,32771,32773,32774,32776}。
在本发明一实施例中,所述基于一致性哈希算法查找网络服务器的优化方法进一步包括步骤E至F:
E、当需要移除已部署的网络服务器时,在编号集合中将与需移除的网络服务器之编号所对应的素数进行移除,并解除需移除的网络服务器与哈希环的映射关系。
F、更新编号和集合。
上述步骤F具体为:
在步骤E中移除网络服务器后所得到的编号集合中选取任意数量的素数进行求和以得到相应的多个素数和,将编号和集合中与该多个素数和相同的素数和保留,并移除与上述多个素数和不同的其余素数和。
为了更好地说明上述实施例,以下结合实例对步骤E至F作进一步的说明:
例如,假设构造一个哈希环,范围为【0,217-1】,编号集合为{2,3,32771},编号集合为{2,3,5,32771,32773,32774,32776}。
当需要移除1台已经部署的网络服务器3时,将编号集合中的3移除,并解除需移除的网络服务器3与哈希环上哈希值为3的映射关系,获得新的编号集合{2,32771}。
从新的编号集合{2,32771}中选取任意数量的素数进行求和以得到相应的素数和2、32771和32773。保留原来编号集合{2,3,5,32771,32773,32774,32776}中的2、32771和32773,移除3、5、32774和32776,获得更新后的编号和集合{2,32771,32773}。
在本发明一实施例中,所述基于一致性哈希算法查找网络服务器的优化方法进一步包括步骤G:
G、当需要关闭已部署的网络服务器时,将当前编号和减去编号集合中与需关闭的网络服务器之编号所对应的素数,并更新当前编号和。
为了更好地说明上述实施例,以下结合实例对步骤G作进一步的说明:
例如,假设编号集合为{2,3,32771},编号集合为{2,3,5,32771,32773,32774,32776},当前编号和为32776。
当需要关闭1台已部署的网络服务器3时,当前编号和32776减去3得到新的当前编号和32773。根据新的当前编号和32773可知,当前开启的已部署的网络服务器为网络服务器2和网络服务器32771。
本发明实施例提出的基于一致性哈希算法查找网络服务器的优化方法,首先接收服务器查找请求,服务器查找请求包括需要查找的数据对象。基于一致性哈希算法计算该数据对象的哈希值,从配置服务器中查询当前所有开启的网络服务器所对应的当前编号和,从中获取当前所有开启的网络服务器的编号,并对所述编号进行排序,以获得编号数列。整个网络服务器分布集群通过配置服务器对当前编号和、编号集合以及编号和集合进行哈希维护,加快了查找速率,同时,当前编号和结构简单,便于占用的较少的网络资源查找目标网络服务器。将哈希值插入编号数列所对应的数列环中,在数列环上查找到与哈希值相邻的编号,以确定相应的网络服务器,其中,数列环的首端和末端相连且分别对应编号数列的首位编号和末位编号,能够解决现有查找网络服务器的技术存在占用网络资源多、复杂程度高、实现难度大的问题。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种基于一致性哈希算法查找网络服务器的优化装置,该基于一致性哈希算法查找网络服务器的优化装置与上述实施例中基于一致性哈希算法查找网络服务器的优化方法一一对应。如图5所示,该基于一致性哈希算法查找网络服务器的优化装置包括接收模块11、哈希求值模块12、编号排序模块13、插入模块14和查找服务器模块15。各功能模块详细说明如下:
接收模块11,用于接收服务器查找请求,其中,所述服务器查找请求包括需要查找的数据对象。
哈希求值模块12,用于基于一致性哈希算法计算所述数据对象的哈希值。
编号排序模块13,用于从配置服务器中查询当前所有开启的网络服务器所对应的当前编号和,从中获取当前所有开启的网络服务器的编号,并对所述编号进行排序,以获得编号数列;其中,所述网络服务器的编号是素数,所述当前编号和由当前所有开启的网络服务器的编号相加得到。
插入模块14,用于将所述哈希值插入所述编号数列所对应的数列环中。
查找服务器模块15,用于在所述数列环上查找到与所述哈希值相邻的编号,以确定相应的网络服务器;其中,所述数列环的首端和末端相连且分别对应所述编号数列的首位编号和末位编号。
在该实施例中,接收模块11之前包括:
第一构造模块,用于根据一致性哈希算法,构造哈希环。
第二构造模块,用于根据已完成初始化处理的网络服务器的数量,构造编号集合与编号和集合,其中,所述编号集合包括与所述网络服务器的数量相等的素数。
编号模块,用于对所述网络服务器进行编号处理,其中,一个所述网络服务器的编号对应所述编号集合中的一个素数。
映射模块,用于将所述网络服务器的编号映射至所述哈希环上所对应的哈希值,以使所述网络服务器与所述哈希环形成映射关系。
在其中一个实施例中,第二构造模块进一步包括:
素数目标数量单元,用于根据已完成初始化处理的网络服务器的数量,确定编号集合中的素数目标数量。
构造编号集合单元,用于根据所述素数目标数量,从所述哈希环中选取不同的素数加入所述编号集合,直至所述编号集合中的素数数量与所述素数目标数量相等。
构造编号和集合单元,用于从所述编号集合中选取任意数量的素数进行求和以得到相应的素数和,并将所有所述素数和所形成的集合作为编号和集合。
作为可选的,基于一致性哈希算法查找网络服务器的优化装置进一步包括:
增加网络服务器模块,用于当需要增加部署的网络服务器时,根据需增加的网络服务器所对应的新增数量,从所述哈希环中选取不同的素数加入所述编号集合,直至所述编号集合中所新增的素数数量等于所述网络服务器的新增数量为止。
编号处理模块,用于根据所述编号集合中所新增的素数,对所述需要增加部署的网络服务器进行编号处理。
部署模块,用于将所述需增加的网络服务器的编号映射至所述哈希环上所对应的哈希值,以使所述需增加的网络服务器与所述哈希环形成映射关系。
第一更新模块,用于更新所述编号和集合。
作为可选的,基于一致性哈希算法查找网络服务器的优化装置进一步包括:
移除网络服务器模块,用于当需要移除已部署的网络服务器时,在所述编号集合中将与需移除的网络服务器之编号所对应的素数进行移除,并解除所述需移除的网络服务器与所述哈希环的映射关系。
第二更新模块,用于更新所述编号和集合。
作为可选的,基于一致性哈希算法查找网络服务器的优化装置进一步包括:
关闭网络服务器模块,用于当需要关闭已部署的网络服务器时,将所述当前编号和减去所述编号集合中与所述需关闭的网络服务器之编号所对应的素数,并更新所述当前编号和。
其中上述模块/单元中的“第一”和“第二”的意义仅在于将不同的模块/单元加以区分,并不用于限定哪个模块/单元的优先级更高或者其它的限定意义。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式。
关于基于一致性哈希算法查找网络服务器的优化装置的具体限定可以参见上文中对于基于一致性哈希算法查找网络服务器的优化方法的限定,在此不再赘述。上述基于一致性哈希算法查找网络服务器的优化装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储基于一致性哈希算法查找网络服务器的优化方法中涉及到的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于一致性哈希算法查找网络服务器的优化方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中基于一致性哈希算法查找网络服务器的优化方法的步骤,例如图2所示的步骤S101至步骤S105及该方法的其它扩展和相关步骤的延伸。或者,处理器执行计算机程序时实现上述实施例中基于一致性哈希算法查找网络服务器的优化装置的各模块/单元的功能,例如图5所示模块11至模块15的功能。为避免重复,这里不再赘述。
所述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。
所述存储器可以集成在所述处理器中,也可以与所述处理器分开设置。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中基于一致性哈希算法查找网络服务器的优化方法的步骤,例如图2所示的步骤S101至步骤S105及该方法的其它扩展和相关步骤的延伸。或者,计算机程序被处理器执行时实现上述实施例中基于一致性哈希算法查找网络服务器的优化装置的各模块/单元的功能,例如图5所示模块11至模块15的功能。为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于一致性哈希算法查找网络服务器的优化方法,其特征在于,包括:
接收服务器查找请求,其中,所述服务器查找请求包括需要查找的数据对象;
基于一致性哈希算法计算所述数据对象的哈希值;
从配置服务器中查询当前所有开启的网络服务器所对应的当前编号和,从所述当前编号和中获取当前所有开启的网络服务器的编号,并对所述编号进行排序,以获得编号数列;其中,所述网络服务器的编号是素数,所述当前编号和由当前所有开启的网络服务器的编号相加得到,从编号集合中选取任意数量的素数进行求和以得到相应的素数和,并将所有所述素数和所形成的集合作为编号和集合,所述当前编号和在所述编号和集合中;
将所述哈希值插入所述编号数列所对应的数列环中;
在所述数列环上查找到与所述哈希值相邻的编号,以确定相应的网络服务器;其中,所述数列环的首端和末端相连且分别对应所述编号数列的首位编号和末位编号。
2.根据权利要求1所述的方法,其特征在于,所述接收服务器查找请求之前包括:
根据一致性哈希算法,构造哈希环;
根据已完成初始化处理的网络服务器的数量,构造编号集合与编号和集合,其中,所述编号集合包括与所述网络服务器的数量相等的素数;
对所述网络服务器进行编号处理,其中,一个所述网络服务器的编号对应所述编号集合中的一个素数;
将所述网络服务器的编号映射至所述哈希环上所对应的哈希值,以使所述网络服务器与所述哈希环形成映射关系。
3.根据权利要求2所述的方法,其特征在于,所述根据初始化网络服务器的数量,构造编号集合与编号和集合的步骤包括:
根据已完成初始化处理的网络服务器的数量,确定编号集合中的素数目标数量;
根据所述素数目标数量,从所述哈希环中选取不同的素数加入所述编号集合,直至所述编号集合中的素数数量与所述素数目标数量相等;
从所述编号集合中选取任意数量的素数进行求和以得到相应的素数和,并将所有所述素数和所形成的集合作为编号和集合。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
当需要增加部署的网络服务器时,根据需增加的网络服务器所对应的新增数量,从哈希环中选取不同的素数加入所述编号集合,直至所述编号集合中所新增的素数数量等于所述网络服务器的新增数量为止;
根据所述编号集合中所新增的素数,对所述需要增加部署的网络服务器进行编号处理;
将所述需增加的网络服务器的编号映射至所述哈希环上所对应的哈希值,以使所述需增加的网络服务器与所述哈希环形成映射关系;
更新所述编号和集合。
5.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
当需要移除已部署的网络服务器时,在所述编号集合中将与需移除的网络服务器之编号所对应的素数进行移除,并解除所述需移除的网络服务器与哈希环的映射关系;
更新所述编号和集合。
6.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
当需要关闭已部署的网络服务器时,将所述当前编号和减去所述编号集合中与需关闭的网络服务器之编号所对应的素数,并更新所述当前编号和。
7.一种基于一致性哈希算法查找网络服务器的优化装置,其特征在于,包括:
接收模块,用于接收服务器查找请求,其中,所述服务器查找请求包括需要查找的数据对象;
哈希求值模块,用于基于一致性哈希算法计算所述数据对象的哈希值;
编号排序模块,用于从配置服务器中查询当前所有开启的网络服务器所对应的当前编号和,从中获取当前所有开启的网络服务器的编号,并对所述编号进行排序,以获得编号数列;其中,所述网络服务器的编号是素数,所述当前编号和由当前所有开启的网络服务器的编号相加得到,从编号集合中选取任意数量的素数进行求和以得到相应的素数和,并将所有所述素数和所形成的集合作为编号和集合,所述当前编号和在所述编号和集合中;
插入模块,用于将所述哈希值插入所述编号数列所对应的数列环中;
查找服务器模块,用于在所述数列环上查找到与所述哈希值相邻的编号,以确定相应的网络服务器;其中,所述数列环的首端和末端相连且分别对应所述编号数列的首位编号和末位编号。
8.根据权利要求7所述的装置,其特征在于,所述接收模块之前还包括:
第一构造模块,用于根据一致性哈希算法,构造哈希环;
第二构造模块,用于根据已完成初始化处理的网络服务器的数量,构造编号集合与编号和集合,其中,所述编号集合包括与所述网络服务器的数量相等的素数;
编号模块,用于对所述网络服务器进行编号处理,其中,一个所述网络服务器的编号对应所述编号集合中的一个素数;
映射模块,用于将所述网络服务器的编号映射至所述哈希环上所对应的哈希值,以使所述网络服务器与所述哈希环形成映射关系。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至3中任一项所述基于一致性哈希算法查找网络服务器的优化方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3中任一项所述基于一致性哈希算法查找网络服务器的优化方法的步骤。
CN202011584917.2A 2020-12-28 2020-12-28 查找网络服务器的优化方法、装置、计算机设备及存储介质 Active CN112650451B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011584917.2A CN112650451B (zh) 2020-12-28 2020-12-28 查找网络服务器的优化方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011584917.2A CN112650451B (zh) 2020-12-28 2020-12-28 查找网络服务器的优化方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN112650451A CN112650451A (zh) 2021-04-13
CN112650451B true CN112650451B (zh) 2023-06-09

Family

ID=75363902

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011584917.2A Active CN112650451B (zh) 2020-12-28 2020-12-28 查找网络服务器的优化方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN112650451B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114095565B (zh) * 2021-11-18 2023-08-29 税友信息技术有限公司 一种服务发现方法、装置、设备及介质
CN115617276A (zh) * 2022-11-07 2023-01-17 北京泰岳天成科技有限公司 一种数据存储方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103336890A (zh) * 2013-06-08 2013-10-02 东南大学 一种快速计算软件相似度的方法
CN108769111A (zh) * 2018-04-17 2018-11-06 平安科技(深圳)有限公司 一种服务器连接方法、计算机可读存储介质及终端设备
CN109739433A (zh) * 2018-11-27 2019-05-10 中科恒运股份有限公司 数据处理的方法及终端设备
CN109960612A (zh) * 2019-03-07 2019-07-02 腾讯科技(深圳)有限公司 一种确定数据存储占比的方法、装置及服务器

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7233978B2 (en) * 1998-07-08 2007-06-19 Econnectix, Llc Method and apparatus for managing location information in a network separate from the data to which the location information pertains
US7743253B2 (en) * 2005-11-04 2010-06-22 Microsoft Corporation Digital signature for network coding
US8266136B1 (en) * 2009-04-13 2012-09-11 Netapp, Inc. Mechanism for performing fast directory lookup in a server system
US10114864B1 (en) * 2015-05-19 2018-10-30 Amazon Technologies, Inc. List element query support and processing
US10719674B2 (en) * 2015-11-19 2020-07-21 Jeffrey Fischer Scalable asset location and tracking and sensor monitoring system
US10984052B2 (en) * 2018-11-19 2021-04-20 Beijing Jingdong Shangke Information Technology Co., Ltd. System and method for multiple-character wildcard search over encrypted data
US11005654B2 (en) * 2019-05-14 2021-05-11 Google Llc Outsourcing exponentiation in a private group
CN111917853A (zh) * 2020-07-24 2020-11-10 山东云缦智能科技有限公司 用于内容分发网络的分布式缓存扩缩容的优化方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103336890A (zh) * 2013-06-08 2013-10-02 东南大学 一种快速计算软件相似度的方法
CN108769111A (zh) * 2018-04-17 2018-11-06 平安科技(深圳)有限公司 一种服务器连接方法、计算机可读存储介质及终端设备
CN109739433A (zh) * 2018-11-27 2019-05-10 中科恒运股份有限公司 数据处理的方法及终端设备
CN109960612A (zh) * 2019-03-07 2019-07-02 腾讯科技(深圳)有限公司 一种确定数据存储占比的方法、装置及服务器

Also Published As

Publication number Publication date
CN112650451A (zh) 2021-04-13

Similar Documents

Publication Publication Date Title
US10999060B2 (en) Data processing method and apparatus
CN112650451B (zh) 查找网络服务器的优化方法、装置、计算机设备及存储介质
US20180239800A1 (en) Data query method and apparatus
EP3754900A1 (en) Method for validating transaction in blockchain network and node for configuring same network
CN109586948A (zh) 更新系统配置数据的方法、装置、计算机设备和存储介质
US10164884B2 (en) Search apparatus, search configuration method, and search method
CN110555041A (zh) 数据处理方法、装置、计算机设备和存储介质
CN110489421A (zh) 数据存储方法、装置、计算机可读存储介质和计算机设备
CN110427386B (zh) 数据处理方法、装置及计算机存储介质
CN108427736B (zh) 一种用于查询数据的方法
CN107133228A (zh) 一种数据重分布的方法及装置
CN107391033B (zh) 数据迁移方法及装置、计算设备、计算机存储介质
CN109639582A (zh) 一种基于分布式哈希表的网络节点处理方法及装置
CN114780537A (zh) 流表存储及报文转发方法、装置、计算设备及介质
CN115203255A (zh) 数据查询方法、装置、电子设备及存储介质
CN112783866B (zh) 数据读取方法、装置、计算机设备和存储介质
CN112511341B (zh) 一种网络自动化故障定位方法、终端及存储介质
US9201982B2 (en) Priority search trees
CN111046004A (zh) 一种数据文件存储方法、装置、设备及存储介质
CN115757172A (zh) 测试执行方法、装置、存储介质及计算机设备
CN113010600B (zh) 一种基于区块链的数据管理系统、方法、相关设备及介质
CN112764897B (zh) 任务请求的处理方法、装置、系统及计算机可读存储介质
CN112929459B (zh) 一种边缘系统及数据操作请求的处理方法
CN112398666B (zh) 软件差分升级方法、装置、设备及存储介质
US11144236B2 (en) Information processing apparatus, information processing method, and non-transitory computer-readable storage medium for storing program

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