他又联想到这家夥恐怖的分数————
沉默了几秒,他又想到昨天喻林的话。
「师弟,你对爬虫了解多少?」
余江回头:「了解了一点点,怎麽?」
「就是即便加了节点,并行抓取也是重复,而且很慢。」闫宏飞望着余江:「有思路没?」
余江微微皱眉。
这位师兄好像是博一————
「嗯————师兄肯定去重没问题————」余江一边说着一边观察闫宏飞的表情,「要不我看看日志?」
闫宏飞点头,随即打开日志。
余江从旁边拉过凳子,迅速查看日志。
爬虫这玩意谁没玩过啊—一他当初写的验证lai123连结网站的小工具,如果加一道分析,就可以算爬虫了。
「师兄用的文件列表?」
「也试过HashSet去重,但很快就爆内存。」
「URL队列问题确实难搞。」余江点头,安静地思索了片刻。
闫宏飞也耐心地等待,只是眼神略有闪烁。
「HashSet在URL总量过高的时候确实会占用大量内存,文件列表吃I/0。
"1
闫宏飞就叹了口气,他的办法是平均负载,但终归治标不治本。
余江转头望着闫宏飞。
「要不试试全局去重?」
闫宏飞一怔:「怎麽全局,什麽架构?」
「引入一个轻量Master节点,专门维护一个全局BloomFilter做去重。」
「位数组大小按我们当前几千万网页规模留足余量,用几个独立哈希函数,误判率控制在千分之五以内就够用。Worker节点本地先快速过滤,新提取的URL再批量通过TCP发给Master确认。」
「关键是per—hostbackqueues:Master按主机名hash分桶,每个主机维护一个FIFO队列和一个下次可抓时间————」
「————Master本身用轻量内存结构,也没什麽瓶颈。」
余江一边思索,一边慢慢地给出方案。
他同时也感慨。
这些在後世几乎算是搜寻引擎入门教科书一般的解决方案,在现在却是拦路虎一般的存在。
闫宏飞认真地听着,最後猛地望向余江。
「你之前干过?」
本章未完,请点击下一页继续阅读!