第89章 这家伙是个宝藏!(3/4)
!闫宏飞只感觉头皮一阵发麻:“你看完了?”
“嗯。”余江回头,见闫宏飞满脸惊恐,马上意识到对方可能被自己看论文的速度吓到了,连忙解释道:“就随便翻了一下。”
闫宏飞却只是摇了摇头。
他当然愿意相信余江只是随便翻了一下。
但随便翻的状态,和认真的,快速看的状态,又怎会一样?
他又联想到这家伙恐怖的分数………………
沉默了几秒,他又想到昨天喻林的话。
“师弟,你对爬虫了解多少?”
余江回头:“了解了一点点,怎么?”
“就是即便加了节点,并行抓取也是重复,而且很慢。”闫宏飞望着余江:“有思路没?”
余江微微皱眉。
这位师兄好像是博一......
“嗯......师兄肯定去重没问题......”余江一边说着一边观察闫宏飞的表情,“要不我看看日志?”
闫宏飞点头,随即打开日志。
余江从旁边拉过凳子,迅速查看日志。
爬虫这玩意谁没玩过啊——他当初写的验证lai123链接网站的小工具,如果加一道分析,就可以算爬虫了。
“师兄用的文件列表?”
“也试过HashSet去重,但很快就爆内存。”
“URL队列问题确实难搞。”余江点头,安静地思索了片刻。
闫宏飞也耐心地等待,只是眼神略有闪烁。
“HashSet在URL总量过高的时候确实会占用大量内存,文件列表吃I/O。
闫宏飞就叹了口气,他的办法是平均负载,但终归治标不治本。
余江转头望着闫宏飞。
“要不试试全局去重?”
闫宏飞一怔:“怎么全局,什么架构?”
“引入一个轻量Master节点,专门维护一个全局Bloom Filter做去重。”
“位数组大小按我们当前几千万网页规模留足余量,用几个独立哈希函数,误判率控制在千分之五以内就够用。Worker节点本地先快速过滤,新提取的URL再批量通过TCP发给Master确认。”
“关键是per-host back queues: Master按主机名hash分桶,每个主机维护一个FIFO队列和一个下次可抓时间………………”
“......Master本身用轻量内存结构,也没什么瓶颈。”
余江一边思索,一边慢慢地给出方案。
他同时也感慨。
这些在后世几乎算是搜索引擎入门教科书一般的解决方案,在现在却是拦路虎一般的存在。
闫宏飞认真地听着,最后猛地望向余江。
“你之前干过?"
闫宏飞死死地盯着余江。
他完全不信,一个没有干过搜索引擎的人,会在这么短时间内就给出近乎完整的解决方案!
余江轻轻咳了咳:“玩过爬虫,也玩过分布式......但分布式爬虫没玩过。”
“我晕!你上哪里玩的?”
余江一阵无语。
知道不把这帮师兄们震住,怕是每天都要问个不休了。
“师兄,非得要我说,我有个非常有钱的姐,她手底下有上百台PIII志强服务器吗?”
