1
yinzishao OP 求各位意见,或者分享下应该怎么分布式爬虫,万分感谢!
|
2
binux 2016-03-08 22:50:51 +08:00
我们假设 fingerprint 是 MD5 串, 256bit, 一亿条 url 也就 3.2G
一亿链接先想想你其他的组件是否撑得住再考虑费不费内存这个问题吧。 |
3
zts1993 2016-03-08 23:46:12 +08:00
url 取 md5 内存占用不了多少,如果再用 64 进制表示,还可以节省 23%的样子
建议对 fingerprint 做一次硬分片散列到多个 redis set 中,这样以后 redis 扩展成集群就比较方便了 :) bloomfilter 感觉最大得问题是不知道怎么预估未来得规模啊。 不过话说 redis 未来会支持 bloomfilter 。。现在 bloomfilter 怎么和 redis 结合? 毕设得时候做得爬虫看的一个人写的,,那个停止条件是 set 里面元素为 0 。。非常不科学,有时候网络一抖动 set 里面为 0 ,还有任务在处理,爬虫就直接 exit 了,简直捉急,不过我看 scrapy-redis 里面好像不是这样。。。。。 我觉得要是我做的话。。还是 set 是否为 0 吧,不过得加点等待时间判断一下就好了。。 |
4
jadetang 2016-03-09 11:05:20 +08:00 via Android
把爬虫的 agent 和 Server 分开,用 Server 来去重。
|