系統架構 之 高效分佈式爬蟲系統的架構設計[申請專利]


1 引言

  在互聯網上可找到很多關於爬蟲系統的設計和實現的相關文檔,但仔細閱讀後可發現絕大多數的設計方案的可用性、可靠性、高效性、擴展性等方面均存在很多問題。

  針對以上問題的存在,本設計方案將以可用性、可靠性、高效性、擴展性爲基本準則重新設計爬蟲系統。

2 處理時序


圖1 爬蟲系統時序圖

  流程描述如下:

  ①、網頁分析器:負責從已下載的網頁中提取HREF字段,並判斷該HREF是否已經爬取。如果已經爬取,則直接丟棄;如果未爬取,則將該URL推送到REDIS隊列。

  ②、任務調度:負責從REDIS隊列中取出URL信息,並對URL進行解析處理,提取域名等信息,並根據域名進行DNS查詢,找到對應的IP地址,再將URL-IP對應信息放入工作隊列。爲了提高效率,可以在此建一張域名IP映射表,避免重複的DNS查詢處理。如果查詢的是不存在的域名,建表可有效的防止線程的反覆阻塞。

  ③、工作線程:負責從工作隊列取出URL, 並將對應網頁爬取到本地磁盤。在此可以採用非阻塞+IO多路複用技術,可以併發爬取大量網頁。

  ④、可配置性:可通過修改配置文件,來控制系統的運行行爲。其中包括配置線程數目、過濾策略、隊列屬性、輸入輸出路徑、表空間大小等等。

發佈了66 篇原創文章 · 獲贊 91 · 訪問量 33萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章