CN106470230B - 分布式dns节点数据一致性同步方法和装置 - Google Patents
分布式dns节点数据一致性同步方法和装置 Download PDFInfo
- Publication number
- CN106470230B CN106470230B CN201510513008.2A CN201510513008A CN106470230B CN 106470230 B CN106470230 B CN 106470230B CN 201510513008 A CN201510513008 A CN 201510513008A CN 106470230 B CN106470230 B CN 106470230B
- Authority
- CN
- China
- Prior art keywords
- node
- dns
- dns node
- taskid
- value
- 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
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/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种分布式DNS节点数据一致性同步方法和装置,通过第一DNS节点获取至少一个第二DNS节点的taskid值,所述至少一个第二DNS节点与所述第一DNS节点属于同类DNS;若所述至少一个第二DNS节点的taskid值中存在大于所述第一DNS节点的taskid值,则所述第一DNS节点与所述至少一个第二DNS节点中最大taskid值的DNS节点进行数据同步,实现同类DNS节点自动发现其它同类节点并比较数据完整性,并通过节点之间的数据同步使同类的DNS的数据保持一致性,提升了域名解析服务的性能。
Description
技术领域
本发明涉及计算机技术,尤其涉及一种分布式域名系统(Domain Name System,简称:DNS)节点数据一致性同步方法和装置。
背景技术
DNS作为域名和网络协议(Internet Protocol,简称:IP)地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。随着网络应用的普及和发展,DNS服务器上所要处理的数据量逐渐增大,从而影响了针对用户的响应效率,造成对访问者的请求回应越来越慢等严重影响域名解析服务质量的现象,在服务器端则直接表现为可容纳的新增连接数越来越小,系统性能严重下降。
现有技术中,通过在分布式DNS系统中,将DNS节点分类,同类DNS节点组成一个组群为特定用户提供服务,从而提高针对用户的响应效率,提高域名解析服务质量。
然而,采用现有技术的方法,同类DNS节点之间可能会由于某些原因造成数据不一致的现象,过一段时间后,系统中的不同DNS服务器就不能提供统一并一致性的域名解析服务,并造成网络访问异常。
发明内容
本发明提供一种分布式DNS节点数据一致性同步方法和装置,以使同类的DNS节点的数据保持一致性。
本发明第一方面提供一种分布式DNS节点数据一致性同步方法,包括:
第一域名系统DNS节点获取至少一个第二DNS节点的任务标识taskid值,所述至少一个第二DNS节点与所述第一DNS节点属于同类DNS;
若所述至少一个第二DNS节点的taskid值中存在大于所述第一DNS节点的taskid值,则所述第一DNS节点与所述至少一个第二DNS节点中最大taskid值的DNS节点进行数据同步。
在上述实施例中,所述第一DNS节点与所述至少一个第二DNS节点中最大taskid值的DNS节点进行数据同步之后,还包括:
所述第一DNS节点将所述第一DNS节点的taskid值增加到所述最大taskid值。
在上述实施例中,述第一DNS节点与所述至少一个第二DNS节点中最大taskid值的DNS节点进行数据同步,包括:
所述第一DNS节点通过kademlia和距离分析算法获取与所述第一节点距离最近的第二节点的IP地址,通过所述距离最近的第二节点与所述最大taskid值的DNS节点进行数据同步。
在上述实施例中,所述第一DNS节点获取至少一个第二DNS节点的taskid值之前,还包括:
所述第一DNS节点根据kademlia算法分配与所述第一DNS节点的IP地址对应的唯一标识ID号,以哈希表条目将记录存储在所述第一DNS节点。
在上述实施例中,所述第一DNS节点获取至少一个第二DNS节点的taskid值之前,还包括:
所述第一DNS节点接收控制节点发送的建立区命令。
在上述实施例中,所述第一DNS节点接收控制节点发送的建立区命令之后,还包括:
所述第一DNS节点接收所述控制节点发送的更新记录的消息命令;
所述第一DNS节点根据所述更新记录的消息命令,更新所述第一DNS节点存储的记录,并将所述第一DNS节点的taskid值增加一个单位。
在上述实施例中,所述第一DNS节点获取至少一个第二DNS节点的taskid值,包括:
所述第一DNS节点以预设周期获取至少一个第二DNS节点的taskid值。
本发明第二方面提供一种分布式DNS节点数据一致性同步装置,包括:
获取模块,用于获取至少一个第二DNS节点的任务标识taskid值,所述至少一个第二DNS节点与所述第一DNS节点属于同类DNS;
同步模块,用于若所述至少一个第二DNS节点的taskid值中存在大于所述第一DNS节点的taskid值,则所述第一DNS节点与所述至少一个第二DNS节点中最大taskid值的DNS节点进行数据同步。
在上述实施例中,所述同步模块还用于将所述第一DNS节点的taskid值增加到所述最大taskid值。
在上述实施例中,所述同步模块具体用于通过kademlia和距离分析算法获取与所述第一节点距离最近的第二节点的IP地址,通过所述距离最近的第二节点与所述最大taskid值的DNS节点进行数据同步。
本发明提供的分布式DNS节点数据一致性同步方法和装置,通过第一DNS节点获取至少一个第二DNS节点的taskid值,所述至少一个第二DNS节点与所述第一DNS节点属于同类DNS;若所述至少一个第二DNS节点的taskid值中存在大于所述第一DNS节点的taskid值,则所述第一DNS节点与所述至少一个第二DNS节点中最大taskid值的DNS节点进行数据同步,实现同类DNS节点自动发现其它同类节点并比较数据完整性,并通过节点之间的数据同步使同类的DNS的数据保持一致性,提升了域名解析服务的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的DHT网络结构示意图;
图2为本发明分布式DNS节点数据一致性同步方法实施例的流程示意图;
图3为本发明分布式DNS节点数据一致性同步装置实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明在DNS分布式系统中,将DNS节点分类,同类节点组成一个分布式哈希表(Distributed Hash Table,简称:DHT)网络为特定用户提供服务每个DNS节点选用Kademlia算法来实现DHT功能,连入DHT网络的用户叫做节点(node),节点之间互相有路由记录,因此只要和任何一个已经在DHT网络中的节点连接上,客户端就可以寻找到更多的节点,从而连入网络。本发明在不需要服务器的情况下,每个DNS节点负责一个范围的路由,并负责存储一部分数据,从而实现整个DHT网络的寻址和存储;每个DNS节点保存自己执行的taskid;同类DNS节点中认为taskid值最大者为数据的完整者,其它DNS节点如果taskid值较小,则通过DHT网络同步数据。本发明通过DHT功能,实现同类DNS节点自动发现其它同类节点并比较数据完整性,并通过同类DNS节点之间的数据同步解决了数据不一致的情况,提升了区域DNS提供一致性解析服务的性能。本发明通过实现DHT的Kademlia算法使同类节点实现DHT功能,使各节点构成一个DHT网络。并通过控制节点向网络中的各节点进行数据同步,并设置特征值(taskid)来标记数据传输执行次数,以此来作为发现网络中数据完整性节点的基础,若有特征值不一致的情况,节点之间会自动进行数据同步,提高了分布式DNS系统的可扩展性、可靠性和数据一致性,确保系统能够提供正常稳定的域名解析服务,维护了DNS系统的安全运行。
图1为本发明的DHT网络结构示意图,如图1所示,本实施例的网络架构图中仅示出了一个控制节点和3个DNS节点,3个DNS节点分别为节点A、节点B和节点C,控制节点和3个DNS节点之间,以及DNS节点之间可进行通信。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2为本发明分布式DNS节点数据一致性同步方法实施例的流程示意图,如图2所示,本实施例由第一DNS节点执行,本实施例中的第一DNS节点可以是DHT网络中同类DNS节点中的任一DNS节点,第二DNS节点时与第一DNS节点的同类DNS节点中的非第一DNS节点。本实施例的方法如下:
S201:第一DNS节点获取至少一个第二DNS节点的taskid值,所述至少一个第二DNS节点与所述第一DNS节点属于同类DNS。
在S201之前,第一DNS节点根据kademlia算法分配与第一DNS节点的IP地址对应的唯一标识ID号,以哈希表条目将记录存储在所述第一DNS节点,从而,实现DHT功能,同类DNS节点通过kademlia算法构成一个DHT网络。每个节点通过都被当做一颗二叉树的叶子,并且每一个节点的位置都由其ID值的最短前缀唯一的确定。
在初始启动阶段,控制节点向DHT网络中的节点发送建立区命令,并进而发送更新记录的消息命令,其中,更新记录的消息命令包括:增加记录、删除记录或修改记录;第一DNS节点接收控制节点发送的建立区命令,并接收所述控制节点发送的更新记录的消息命令;所述第一DNS节点根据所述更新记录的消息命令,更新所述第一DNS节点存储的记录,并将所述第一DNS节点的taskid值增加一个单位。因为执行的区数据命令操作是相同的,不出异常的话,同一个DHT网络中各节点的taskid值应当相同;如果出现传输异常,某个节点的taskid值会小于正常节点的taskid值。
第一系统DNS节点获取至少一个第二DNS节点的taskid值,所述至少一个第二DNS节点与所述第一DNS节点属于同类DNS,具体地,第一DNS节点可以以预设周期获取至少一个第二DNS节点的taskid值。
S202:若所述至少一个第二DNS节点的taskid值中存在大于所述第一DNS节点的taskid值,则所述第一DNS节点与所述至少一个第二DNS节点中最大taskid值的DNS节点进行数据同步。
若所述至少一个第二DNS节点的taskid值中存在大于所述第一DNS节点的taskid值,说明第一DNS中的数据不是最新的数据,最大taskid值的DNS节点的数据可以认为是最为完整的,因此,第一DNS节点与最大taskid值的DNS节点进行数据同步。
由于连入DHT网络的节点之间互相有路由记录,因此只要和任何一个已经在DHT网络中的节点连接上,进行同步时,第一DNS节点通过kademlia和距离分析算法获取与所述第一节点距离最近的第二节点的IP地址,通过所述距离最近的第二节点与所述最大taskid值的DNS节点进行数据同步。
在执行S202之后,还可以执行S203。
S203:第一DNS节点将所述第一DNS节点的taskid值增加到所述最大taskid值。
本实施例,通过第一DNS节点获取至少一个第二DNS节点的taskid值,所述至少一个第二DNS节点与所述第一DNS节点属于同类DNS;若所述至少一个第二DNS节点的taskid值中存在大于所述第一DNS节点的taskid值,则所述第一DNS节点与所述至少一个第二DNS节点中最大taskid值的DNS节点进行数据同步,实现同类DNS节点自动发现其它同类节点并比较数据完整性,并通过节点之间的数据同步使同类的DNS的数据保持一致性,提升了域名解析服务的性能。
图3为本发明分布式DNS节点数据一致性同步装置实施例的结构示意图,本实施例的装置包括获取模块301和同步模块302,其中,获取模块301用于获取至少一个第二DNS节点的taskid值,所述至少一个第二DNS节点与所述第一DNS节点属于同类DNS;同步模块302用于若所述至少一个第二DNS节点的taskid值中存在大于所述第一DNS节点的taskid值,则所述第一DNS节点与所述至少一个第二DNS节点中最大taskid值的DNS节点进行数据同步。
在上述实施例中,所述同步模块302还用于将所述第一DNS节点的taskid值增加到所述最大taskid值。
在上述实施例中,所述同步模块302具体用于通过kademlia和距离分析算法获取与所述第一节点距离最近的第二节点的IP地址,通过所述距离最近的第二节点与所述最大taskid值的DNS节点进行数据同步。
本实施例的装置,对应地可用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (8)
1.一种分布式DNS节点数据一致性同步方法,其特征在于,包括:
第一域名系统DNS节点获取至少一个第二DNS节点的任务标识taskid值,所述至少一个第二DNS节点与所述第一DNS节点属于同类DNS;
若所述至少一个第二DNS节点的taskid值中存在大于所述第一DNS节点的taskid值,则所述第一DNS节点与所述至少一个第二DNS节点中最大taskid值的DNS节点进行数据同步;
所述第一DNS节点获取至少一个第二DNS节点的taskid值之前,还包括:
所述第一DNS节点接收控制节点发送的建立区命令;
所述第一DNS节点接收控制节点发送的建立区命令之后,还包括:
所述第一DNS节点接收所述控制节点发送的更新记录的消息命令;
所述第一DNS节点根据所述更新记录的消息命令,更新所述第一DNS节点存储的记录,并将所述第一DNS节点的taskid值增加一个单位。
2.根据权利要求1所述的方法,其特征在于,所述第一DNS节点与所述至少一个第二DNS节点中最大taskid值的DNS节点进行数据同步之后,还包括:
所述第一DNS节点将所述第一DNS节点的taskid值增加到所述最大taskid值。
3.根据权利要求1或2所述的方法,其特征在于,所述第一DNS节点与所述至少一个第二DNS节点中最大taskid值的DNS节点进行数据同步,包括:
所述第一DNS节点通过kademlia和距离分析算法获取与所述第一DNS节点距离最近的第二DNS节点的IP地址,通过所述距离最近的第二DNS节点与所述最大taskid值的DNS节点进行数据同步。
4.根据权利要求1或2所述的方法,其特征在于,所述第一DNS节点获取至少一个第二DNS节点的taskid值之前,还包括:
所述第一DNS节点根据kademlia算法分配与所述第一DNS节点的IP地址对应的唯一标识ID号,以哈希表条目将记录存储在所述第一DNS节点。
5.根据权利要求1或2所述的方法,其特征在于,所述第一DNS节点获取至少一个第二DNS节点的taskid值,包括:
所述第一DNS节点以预设周期获取至少一个第二DNS节点的taskid值。
6.一种分布式DNS节点数据一致性同步装置,其特征在于,包括:
获取模块,用于获取至少一个第二DNS节点的任务标识taskid值,所述至少一个第二DNS节点与所述第一DNS节点属于同类DNS;
同步模块,用于若所述至少一个第二DNS节点的taskid值中存在大于所述第一DNS节点的taskid值,则所述第一DNS节点与所述至少一个第二DNS节点中最大taskid值的DNS节点进行数据同步;
所述获取至少一个第二DNS节点的taskid值之前,还包括:
所述第一DNS节点接收控制节点发送的建立区命令;
所述第一DNS节点接收控制节点发送的建立区命令之后,还包括:
所述第一DNS节点接收所述控制节点发送的更新记录的消息命令;
所述第一DNS节点根据所述更新记录的消息命令,更新所述第一DNS节点存储的记录,并将所述第一DNS节点的taskid值增加一个单位。
7.根据权利要求6所述的装置,其特征在于,所述同步模块还用于将所述第一DNS节点的taskid值增加到所述最大taskid值。
8.根据权利要求6或7所述的装置,其特征在于,所述同步模块具体用于通过kademlia和距离分析算法获取与所述第一DNS节点距离最近的第二DNS节点的IP地址,通过所述距离最近的第二DNS节点与所述最大taskid值的DNS节点进行数据同步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510513008.2A CN106470230B (zh) | 2015-08-19 | 2015-08-19 | 分布式dns节点数据一致性同步方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510513008.2A CN106470230B (zh) | 2015-08-19 | 2015-08-19 | 分布式dns节点数据一致性同步方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106470230A CN106470230A (zh) | 2017-03-01 |
CN106470230B true CN106470230B (zh) | 2019-08-20 |
Family
ID=58228790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510513008.2A Active CN106470230B (zh) | 2015-08-19 | 2015-08-19 | 分布式dns节点数据一致性同步方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106470230B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108712470B (zh) * | 2018-04-20 | 2021-06-29 | 南京天溯自动化控制系统有限公司 | 一种路由数据同步方法及装置、计算机装置和存储介质 |
CN110049049B (zh) * | 2019-04-22 | 2021-05-11 | 中国互联网络信息中心 | 一种dns区数据校验的方法和装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7533134B2 (en) * | 2004-04-01 | 2009-05-12 | Microsoft Corporation | Systems and methods for the propagation of conflict resolution to enforce item convergence (i.e., data convergence) |
CN101483670B (zh) * | 2009-02-25 | 2012-02-22 | 南京邮电大学 | 基于分布式哈希表的区域化对等计算数据一致性维护方法 |
CN102025525A (zh) * | 2009-09-10 | 2011-04-20 | 浙江省公众信息产业有限公司 | 一种多台服务器数据同步方法 |
CN103379129B (zh) * | 2012-04-12 | 2016-12-14 | 阿里巴巴集团控股有限公司 | 一种数据同步方法、服务器及分布式系统 |
CN102929696B (zh) * | 2012-09-28 | 2015-09-09 | 北京搜狐新媒体信息技术有限公司 | 一种分布式系统中心节点构建、提交、监控方法及装置 |
CN104168321A (zh) * | 2014-08-22 | 2014-11-26 | 深圳市中兴移动通信有限公司 | 一种存储数据更新的方法、云存储服务器及终端 |
-
2015
- 2015-08-19 CN CN201510513008.2A patent/CN106470230B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106470230A (zh) | 2017-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106534328B (zh) | 节点连接方法及分布式计算系统 | |
CN104735098B (zh) | 会话信息的控制方法和控制系统 | |
CN109802985A (zh) | 数据传输方法、装置、设备及可读取存储介质 | |
CN104601736B (zh) | 一种短url服务的实现方法及装置 | |
CN106850710B (zh) | 一种数据云存储系统、客户终端、存储服务器及应用方法 | |
CN105656653B (zh) | 分布式协调系统中新增节点的入网方法、装置和系统 | |
US10999361B2 (en) | Consistent hash-based load balancer | |
US9948496B1 (en) | Determining a transit appliance for data traffic to a software service | |
CN104717314B (zh) | 一种ip管理方法及系统、客户端、服务器 | |
CN109729111A (zh) | 用于管理分布式系统的方法、设备和计算机程序产品 | |
JP5605229B2 (ja) | アプリケーションサーバ管理システム、アプリケーションサーバ管理方法、管理装置、アプリケーションサーバ、および、コンピュータ・プログラム | |
US7869349B2 (en) | Method and system for deducing network routes by querying routers | |
US10628050B2 (en) | Data processing method and apparatus | |
CN111581284A (zh) | 一种数据库高可用性方法、装置、系统和存储介质 | |
US20150236902A1 (en) | System, method and apparatus to manage services in a network | |
US10250437B2 (en) | Method and system for configuring network devices | |
US9253090B2 (en) | System and method for reduced forwarding information storage | |
CN105993161A (zh) | 可扩展地址解析 | |
JP2012048330A (ja) | クラスタシステムおよびソフトウェアデプロイ方法 | |
CN108243079A (zh) | 一种基于vpc进行网络访问的方法与设备 | |
CN106470230B (zh) | 分布式dns节点数据一致性同步方法和装置 | |
CN110391940A (zh) | 服务地址的响应方法、装置、系统、设备和存储介质 | |
CN106973125A (zh) | 域名解析实现方法及装置 | |
CN103229480A (zh) | 分布式存储系统中的数据处理方法及设备、客户端 | |
CN108282516A (zh) | 一种基于iSCSI的分布式存储集群负载均衡方法和装置 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210510 Address after: 101407 room 322, building 1, yard 3, xingkenan 2nd Street, Yanqi Economic Development Zone, Huairou District, Beijing Patentee after: INTERNET DOMAIN NAME SYSTEM BEIJING ENGINEERING RESEARCH CENTER Address before: 101400 D9, 1st floor, 88 Yangyan Road, Yanqi Economic Development Zone, Huairou District, Beijing Patentee before: INTERNET DOMAIN NAME SYSTEM BEIJING ENGINEERING RESEARCH CENTER Patentee before: KNET Co.,Ltd. |
|
TR01 | Transfer of patent right |