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

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信息,网络流量不增不减吧。好处是,每个节点不用频繁和各种连接都建立连接。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容