一种多层级共享缓存的递归域名服务系统和方法_2

文档序号:9219863阅读:来源:国知局
二级缓存服务器。
[0043]中间的二级缓存服务器在收到前端一级缓存服务器转发的域名查询请求后,首先会检查本地服务器缓存区,如本地缓存区有请求的资源记录,则二级缓存服务器会直接返回数据给一级缓存服务器;如没有,则其会进一步将域名查询请求转给后端的转发服务器。在二级缓存服务器中,为了提高域名资源记录在二级缓存服务器缓存区的命中率,二级缓存服务器将通过一致性缓存共享机制汇集前端所有一级缓存服务器的缓存记录,建立一个相对较大的缓存区。
[0044]后端的转发服务器接收来自二级缓存服务器的查询请求,并进行迭代查询,最后将查询到的资源记录返回二级缓存服务器,二级缓存服务器缓存查询结果,并返回结果给前端一级缓存服务器,一级缓存服务器缓存查询结果,并最后将结果返回给客户端应用。
[0045]下面提供一个具体实例。首先,整个平台先运行服务一段时间,同时各功能模块均启动运行:
[0046](I) 一级缓存服务器的数据采集模块向本服务器运行的DNS解析进程发送请求,将DNS解析进程的内存缓存区的资源记录导出,并写入到本地服务器硬盘;
[0047](2)数据采集模块检查步骤(I)中生成的文件内容是否为空:如果文件内容为空,则数据采集模块会启动计时器,等待一段时间后再次执行步骤(I)的操作;如果文件非空,则数据采集模块执行步骤(3)所述工作;
[0048](3)数据采集模块将对步骤(I)输出文件进行预处理,首选将对文件进行加锁保护,将文件中TTL即将到期的资源记录删除,处理完毕后对文件解锁,然后会生成该生成时间序列号;
[0049](4)数据采集模块向同步控制模块发送可以进行数据同步的消息(注:数据同步模块启动并一直处于端口监听状态);
[0050](5)同步控制模块进行收到数据采集模块发送的消息,并进行应答回复;
[0051](6)同步控制模块向数据采集模块发送确认消息后,启动客户端进程向运行在二级缓存服务器上的服务器进程发送一个请求数据同步的消息,同时会将步骤(I)输出文件的时间序列号一并发送给二级缓存服务器上同步控制模块的服务器进程;
[0052](7) 二级缓存服务器上同步控制模块(的服务器进程)收到一级缓存服务器上同步控制模块(的客户端进程)发送来的同步请求消息和时间序列号,首先检查本地共享缓存文件的时间序列号,并比较两个时间序列号值大小:
[0053](a)如果一级缓存服务器文件时间序列号比本地共享缓存文件的时间序列号大,则向一级缓存服务器发送允许数据同步的应答消息;
[0054](b)如果一级缓存服务器文件时间序列号比本地共享缓存文件的时间序列号小,则向一级缓存服务器发送拒绝数据同步的应答消息;
[0055](8) 一级缓存服务器上的同步控制模块收到二级缓存服务器发送来应答后,根据应答结果执行以下操作:
[0056](a)如果是允许数据同步消息,则一级缓存服务器执行步骤(9);
[0057](b)如果是拒绝数据同步小组,则同步控制模块会启动计时器,等待下一段时间后再执行步骤⑷;
[0058](9) 一级缓存服务器上的同步控制模块为步骤(I)的输出文件生成MD5校验值;
[0059](10) 一级缓存服务器上同步控制模块(客户端进程)将步骤(I)的输出文件和MD5校验值发送给二级缓存服务器的同步控制模块(服务器端进程);
[0060](11) 二级缓存服务器的同步控制模块(服务器端进程)接收同步数据写入本地硬盘指定的文件中;
[0061](12) 二级缓存服务器同步控制模块为步骤(11)生成的文件生成MD5校验值,并与接收到的MD5值比对,验证是否一致:
[0062](a)如果MD5验证未通过,则丢弃(删除)接收到的数据文件;
[0063](b)如果通过MD5验证,则执行步骤(13);
[0064](13) 二级缓存服务器同步控制模块向本地DNS解析程序发送请求,将DNS解析程序的内存缓存区资源记录导出到本地硬盘,并写入某临时文件;
[0065](14) 二级缓存服务器的同步控制模块向本服务器上的数据加载模块发送加载请求;
[0066](15)数据加载模块将步骤(11)中生成的文件和步骤(13)生成的文件进行合并处理,将前者文件中有的资源记录但后者文件中没有的资源记录,添加到后者文件中;(注:因可能同时有多个同步控制模块向同一个数据加载模块发送请求,因此,数据加载模块在读写步骤(13)中的指定文件时需采用互斥锁机制,防止出现死锁问题)
[0067](16) 二级缓存服务器上的数据加载模块向本地DNS解析程序发送一个请求给加载资源记录的消息;
[0068](17) 二级缓存服务器上的DNS解析程序接受到请求后,执行数据加载,将数据写入内存,并提供解析。
[0069]以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。
【主权项】
1.一种多层级共享缓存的递归域名服务系统,其特征在于,包括一级缓存服务器、二级缓存服务器以及转发服务器; 所述一级缓存服务器接收来自客户端的域名查询请求,并检查本地服务器的缓存区是否有请求的资源记录,如果缓存区命中则直接将资源记录应答给客户端,如果缓存区未命中则将域名查询请求转发给所述二级缓存服务器; 所述二级缓存服务器汇集所有一级缓存服务器的缓存记录,在收到一级缓存服务器转发的域名查询请求后,检查本地服务器缓存区,如果本地缓存区有请求的资源记录则直接返回数据给一级缓存服务器,否则将域名查询请求转给所述转发服务器; 所述转发服务器接收来自二级缓存服务器的查询请求,并进行迭代查询,最后将查询到的资源记录返回二级缓存服务器,二级缓存服务器缓存查询结果并返回查询结果给一级缓存服务器,一级缓存服务器缓存查询结果并将查询结果返回给客户端。2.如权利要求1所述的系统,其特征在于,包括数据采集模块、同步控制模块和验证加载模块;所述数据采集模块部署在一级缓存服务器上,负责一级缓存服务器缓存区资源记录的导出以及本地服务器缓存资源记录文件的维护管理;所述同步控制模块部署在一级缓存服务器和二级缓存服务器上,负责进行一级缓存服务器和二级缓存服务器的数据同步;所述数据加载模块部署在二级缓存服务器上,负责验证接收的资源记录格式的正确性、资源记录的合并处理,以及合并后资源记录的内存加载工作,并与本地服务器上的DNS解析进程通信。3.如权利要求2所述的系统,其特征在于:所述数据采集模块包括两个进程,一个进程负责定期发送请求,将本地服务器DNS解析进程的内存缓存记录导出并写入本地硬盘,另一个进程对导出的缓存区资源记录进行预处理,将TTL即将到期的资源记录删除。4.如权利要求2所述的系统,其特征在于:所述同步控制模块包括客户端进程和服务器端进程,在每次数据同步前,双方进行通信确认是否需要进行数据同步;如果同步控制模块的服务器端进程允许数据同步传输,则客户端进程与服务器端进程建立TCP连接,并传输数据,服务器端进程在接收完数据后进行MD5校验以确保传输数据的正确性。5.如权利要求2或4所述的系统,其特征在于:所述同步控制模块设有共享锁,对共享缓存的记录文件进行保护以防止多个程序或进程同时读写共享缓存文件导致的死锁。6.如权利要求2或4所述的系统,其特征在于:所述一级缓存服务器和所述二级缓存服务器进行数据同步前,进行文件序列号大小或新旧的对比,以避免无效的数据同步。7.如权利要求1或2所述的系统,其特征在于:所述二级缓存服务器将所述一级缓存服务器的缓存资源记录放在本地硬盘而不是直接写入服务器内存,以防止因资源记录格式错误导致的本地服务器DNS解析异常。8.如权利要求1或2所述的系统,其特征在于:由若干所述一级缓存服务器组成服务机群,并采用负载均衡技术。9.一种多层级共享缓存的递归域名服务方法,适用于一包括一级缓存服务器、二级缓存服务器以及转发服务器的递归域名服务系统,该方法的步骤包括: I)一级缓存服务器接收来自客户端的域名查询请求,并检查本地服务器的缓存区是否有请求的资源记录,如果缓存区命中则直接将资源记录应答给客户端,如果缓存区未命中则将域名查询请求转发给二级缓存服务器; 2)二级缓存服务器汇集前端所有一级缓存服务器的缓存记录,在收到一级缓存服务器转发的域名查询请求后,检查本地服务器缓存区,如果本地缓存区有请求的资源记录则直接返回数据给一级缓存服务器,否则将域名查询请求转给转发服务器; 3)转发服务器接收来自二级缓存服务器的查询请求,并进行迭代查询,最后将查询到的资源记录返回二级缓存服务器,二级缓存服务器缓存查询结果并返回查询结果给一级缓存服务器,一级缓存服务器缓存查询结果并将查询结果返回给客户端。10.如权利要求9所述的方法,其特征在于:在一级缓存服务器上部署数据采集模块,负责一级缓存服务器缓存区资源记录的导出以及本地服务器缓存资源记录文件的维护管理;在一级缓存服务器和二级缓存服务器上部署同步控制模块,负责进行一级缓存服务器和二级缓存服务器的数据同步;在二级缓存服务器上部署数据加载模块,负责验证接收的资源记录格式的正确性、资源记录的合并处理,以及合并后资源记录的内存加载工作,并与本地服务器上的DNS解析进程通信。
【专利摘要】本发明涉及一种多层级共享缓存的递归域名服务系统和方法。该系统包括一级缓存服务器、二级缓存服务器以及转发服务器。二级缓存服务器通过一致性缓存共享机制汇集前端所有一级缓存服务器的缓存记录,建立一个相对较大的缓存区;在收到一级缓存服务器转发的域名查询请求后,检查本地服务器缓存区,如果本地缓存区有请求的资源记录则直接返回数据给一级缓存服务器,否则将域名查询请求转给转发服务器,由转发服务器进行迭代查询得到查询结果。进一步地,上述系统包括数据采集模块、同步控制模块和验证加载模块。本发明可以实现不同缓存服务器之间缓存资源记录的共享,显著提高域名缓存命中率,缩短域名解析时延。
【IPC分类】H04L29/12, H04L29/08
【公开号】CN104935680
【申请号】CN201510340578
【发明人】徐东, 刘明星, 赵琦, 于俊峰
【申请人】中国互联网络信息中心
【公开日】2015年9月23日
【申请日】2015年6月18日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1