系统架构 之 高效分布式爬虫系统的架构设计[申请专利]

Posted 祁峰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统架构 之 高效分布式爬虫系统的架构设计[申请专利]相关的知识,希望对你有一定的参考价值。


1 引言

  在互联网上可找到很多关于爬虫系统的设计和实现的相关文档,但仔细阅读后可发现绝大多数的设计方案的可用性、可靠性、高效性、扩展性等方面均存在很多问题。

  针对以上问题的存在,本设计方案将以可用性、可靠性、高效性、扩展性为基本准则重新设计爬虫系统。

2 处理时序


图1 爬虫系统时序图

  流程描述如下:

  ①、网页分析器:负责从已下载的网页中提取HREF字段,并判断该HREF是否已经爬取。如果已经爬取,则直接丢弃;如果未爬取,则将该URL推送到REDIS队列。

  ②、任务调度:负责从REDIS队列中取出URL信息,并对URL进行解析处理,提取域名等信息,并根据域名进行DNS查询,找到对应的IP地址,再将URL-IP对应信息放入工作队列。为了提高效率,可以在此建一张域名IP映射表,避免重复的DNS查询处理。如果查询的是不存在的域名,建表可有效的防止线程的反复阻塞。

  ③、工作线程:负责从工作队列取出URL, 并将对应网页爬取到本地磁盘。在此可以采用非阻塞+IO多路复用技术,可以并发爬取大量网页。

  ④、可配置性:可通过修改配置文件,来控制系统的运行行为。其中包括配置线程数目、过滤策略、队列属性、输入输出路径、表空间大小等等。

以上是关于系统架构 之 高效分布式爬虫系统的架构设计[申请专利]的主要内容,如果未能解决你的问题,请参考以下文章

分布式多爬虫系统——架构设计

Hadoop之HDFS架构设计

分布式系统架构设计系列文章

分布式系统架构设计系列文章

软考高级系统架构设计师系列论文之:软考高级架构设计师百篇范文

成为架构师课程系列高性能系统设计之分布式缓存