[发明专利]一种网络爬虫的域名解析缓冲方法在审
| 申请号: | 202111476457.6 | 申请日: | 2021-12-06 |
| 公开(公告)号: | CN114154042A | 公开(公告)日: | 2022-03-08 |
| 发明(设计)人: | 李涛;孙思清;孙兴艳 | 申请(专利权)人: | 浪潮云信息技术股份公司 |
| 主分类号: | G06F16/951 | 分类号: | G06F16/951;G06F16/901;G06F12/0895;G06F12/0891;H04L61/30;H04L61/4511;H04L61/58 |
| 代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 阚恭勇 |
| 地址: | 250100 山东省济南市高*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 网络 爬虫 域名解析 缓冲 方法 | ||
本发明提供一种网络爬虫的域名解析缓冲方法,属于数据处理技术领域,本发明在深入分析操作系统和JVM的域名解析工作机制基础上,结合分布式爬虫的并行化与任务多节点均匀化等特点,采用正向和负向双缓存方式,为2个缓存分别设计采用了特定的数据结构和过期策略。实验表明,该方法可以有效提升域名解析性能,同时降低各爬虫节点的内存占用和域名解析请求对网络带宽的影响,提升了分布式爬虫的整体性能。
技术领域
本发明涉及数据处理技术领域,尤其涉及一种网络爬虫的域名解析缓冲方法。
背景技术
搜索引擎是目前从互联网获取信息的最有效方式。分布式爬虫作为搜索引擎的基础,得到了广泛的研究与应用,其通常由URL分析器、DNS缓存、速率控制等多个组件构成。爬虫在抓取网页时,需要使用DNS(DomainNameService)将目标主机的域名转换为IP地址。研究表明,这一环节是爬虫的主要性能瓶颈之一。
国内外对单机爬虫的策略、性能等各方面已进行了深入研究,对分布式爬虫的研究主要集中在任务调度、资源分配等爬虫策略方面,对分布式爬虫性能问题的研究尚不多见。
JVM的域名缓存方法
1缓存策略
编写网络应用程序时,通常使用InetAddress类来完成此功能,此时,DNS缓存由JVM的缓存策略控制,当使用InetAddress类第1次成功解析某个域名(如www.google.com)后,JVM就会将这个域名和它从DNS上获得的信息(IP地址和TTL等)都保存在缓存中,当下一次InetAddress类再解析这个域名时,就直接从缓存里获得所需的信息,而无需再访问DNS服务器;对解析错误的域名,InetAddress提供了负向缓存(NegativeCache)机制,但默认为不缓存。使用InetAddress域名解析后,操作系统也会将此记录进行缓存,JVM下次调用域名解析时,会利用操作系统的缓存。操作系统的缓存时间会参考DNS服务器响应的TTL值,但是不完全等于TTL值,Windows系统可以通过注册表设置DNS缓存条目TTL最大值,默认为1d,域名解析的全过程如图一所示。但这种方式有2个问题,首先,分布式爬虫为了避免IP被封的问题,会尽量将对同一域名的抓取任务均匀分布在多个爬虫节点,这就使得即使是相同的域名,由于JVM和操作系统的缓存不能跨节点共享,每个爬虫节点都至少需要一次向网络DNS服务器请求解析;其次,为了避免大站积压问题,分布式爬虫调度器通常会以一级或二级域名为单位对抓取任务做公平调度,这就使得大站的抓取需要较长的时间,而DNS服务器响应的域名TTL值通常则较小,从而导致操作系统和JVM的域名缓存过期后删除,爬虫则需多次请求DNS服务器。
2缓存的数据结构
JVM的InetAddress内部使用LinkedHashMapString,CacheEntry作为正向(Positive)和负向(Negative)缓存的数据结构,其中键为字符串类型的域名,值对象CacheEntry中主要包括IP地址和TTL。这种数据结构有2个问题,首先,空间效率较低,分布式爬虫需要处理大量的域名,如果使用ⅣM的缓存数据结构来存储这些一级域名,仅TLD的冗余存储就需要5×3×109=1.5GB;考虑到一个网站通常有多个子域名,此时,TLD的冗余则需要更多的空间(假设每个网站平均有3个子域名,则TLD冗余需要接近4.5GB的内存空间)。其次,该结构数据只在同一个JVM内共享,不符合分布式爬虫多节点共享和分布式并行的应用特点,且该数据结构的同时访问需要采用同步锁阻塞的方式,不能很好地支持高并发,也会影响爬虫性能。
发明内容
为了解决以上技术问题,本发明提供了一种网络爬虫的域名解析缓冲方法。提升域名解析性能,同时降低各爬虫节点的内存占用和域名解析请求对网络带宽的影响。
本发明的技术方案是:
一种网络爬虫的域名解析缓冲方法,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮云信息技术股份公司,未经浪潮云信息技术股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111476457.6/2.html,转载请声明来源钻瓜专利网。





