系统架构 之 高效分布式爬虫系统的架构设计[申请专利]
Posted 祁峰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统架构 之 高效分布式爬虫系统的架构设计[申请专利]相关的知识,希望对你有一定的参考价值。
- 作者:邹祁峰
- 邮箱:Qifeng.zou.job@hotmail.com
- 博客:http://blog.csdn.net/qifengzou
- 日期:2015.02.06
- 转载请注明来自"祁峰"的CSDN博客
1 引言
在互联网上可找到很多关于爬虫系统的设计和实现的相关文档,但仔细阅读后可发现绝大多数的设计方案的可用性、可靠性、高效性、扩展性等方面均存在很多问题。
针对以上问题的存在,本设计方案将以可用性、可靠性、高效性、扩展性为基本准则重新设计爬虫系统。
2 处理时序
图1 爬虫系统时序图
流程描述如下:
①、网页分析器:负责从已下载的网页中提取HREF字段,并判断该HREF是否已经爬取。如果已经爬取,则直接丢弃;如果未爬取,则将该URL推送到REDIS队列。
②、任务调度:负责从REDIS队列中取出URL信息,并对URL进行解析处理,提取域名等信息,并根据域名进行DNS查询,找到对应的IP地址,再将URL-IP对应信息放入工作队列。为了提高效率,可以在此建一张域名IP映射表,避免重复的DNS查询处理。如果查询的是不存在的域名,建表可有效的防止线程的反复阻塞。
③、工作线程:负责从工作队列取出URL, 并将对应网页爬取到本地磁盘。在此可以采用非阻塞+IO多路复用技术,可以并发爬取大量网页。
④、可配置性:可通过修改配置文件,来控制系统的运行行为。其中包括配置线程数目、过滤策略、队列属性、输入输出路径、表空间大小等等。
以上是关于系统架构 之 高效分布式爬虫系统的架构设计[申请专利]的主要内容,如果未能解决你的问题,请参考以下文章