10000台不稳定机器如果做爬虫

2020-09-04  本文已影响0人  听海吹牛逼的声音

https://medium.com/@morefree7/design-a-distributed-web-crawler-f67a8ebb8336

仅仅是要减小nodes之间的traffic,实际很难减少呀,但是做到能减少一点是一点。
还是需要master的角色来做初始化和协调。
但是每个node把url分发到对应的node去处理,不过把这个信息给存在本地就好,就不用每次去找master来找,这个是减少一点call。

我觉得其实还有个思路。
弄几个中心节点记录每个url是否被爬过。然后一个节点拿到url,使劲爬,当然每次爬之前要去中心查是否被爬了,或者说尝试去中心检点标记自己要爬这个,但是标记失败就说明被爬过了,不用爬了。这样的话,只需要一个call。
如果当前节点的queue太大了。说明自己搞不定,那就去master要资源,看看哪个节点空闲。那这个节点可以去把部分load转移到另外的节点上去。
这样节点之间的通信只有url信息,网络流量不增不减吧。好处是,每个节点不用频繁和各种连接都建立连接。

上一篇下一篇

猜你喜欢

热点阅读