矽谷之路53:如何設計Crawler(三)分散式爬蟲設計
01-31
我們已經講了如何設計實現爬蟲,如果一台機器又要負責爬取頁面又要負責任務的分發很容易成為瓶頸,那麼能不能做成分散式的呢?今天就來講講如何將爬蟲放在多個機器上。
t最經典的架構就是Task&Pages在中心,Crawler分布在四周,每個Crawler和一個Connector相對應。這個架構好像Connector太多了,我們真的需要這麼多Connector嗎?我們可以實現一個一對多的架構,由統一的Sender給Crawler發任務,統一的Receiver接收結果。這個架構其實並沒有減少Crawler和中心的連接數,可是這種架構方便統一管理,免去了協調過多Connector的麻煩,也符合當下微架構的設計模式。
但是總是要鎖來鎖去有點麻煩,能不能避開鎖的問題呢?我們可以利用資料庫來解決,直接從資料庫里獲取數據存放數據數據,讓資料庫來解決同步機制。
本文整理作者:Mengying Tian,查看完整視頻:http://www.bittiger.io/classes
更多內容,請訪問:BitTiger.io, 掃描下面二維碼,關注微信公眾賬號「論碼農的自我修養」
推薦閱讀:
※temme:優雅地從 HTML 提取 JSON 數據
※python爬取房產數據,在地圖上展現
TAG:网页爬虫 |