(12)分布式下的爬虫Scrapy应该如何做-浅析分布式

 

我们先了解一下分布式,以下的内容在很早之前分享在一个爬虫群里面,现在拿出来重新回顾一下。

大家面试或者聊天的时候,装逼都会问,分布式,你会吗?那什么是分布式,为什么要分布式,怎么样实现分布式,我们先从逻辑上思考这三个问题

  • 是什么

  • 为什么

  • 怎么样

啥是分布式

分布式说白了,就是你是一个有钱的地主,你可以出钱请很多人帮你做同样的事情,多机器执行同样的从任务,看着像一台机器,而且,在你需要的时候可以很轻松的横向拓展,实现高效的性能转换,这才是重点

 

那为什么要用分布式

简单来说,你感觉到一台机器已经明显的力不从心了,这个时候简单的做法,我纵向的加强机器,加内存,换 CPU,加宽带,那对于爬虫来说,这样做真的好吗?

我们假想一个场景,假设你打算纵向的拓展机器 ,加内存,加CPU,我多开线程(进程)来使用spider ,当然,这个时候没啥问题,假设你断电了,或者某个爬虫出现不可逆的错误,那你只能干瞪眼了,如果你有很强的状态保存机制,那没啥还可以从断掉的地方从新开始,那如果没有,就只能悲剧了。只能从来,和迅雷下片到99%一样,只能重新来了,说实话这样有点郁闷的。

分布式针对爬虫来说比较适应,因为将风险分散了,那有没有坏处呢?辩证的看,当然有,你的运维的成本上升了,但是鱼和熊掌不可兼得,两害相侵取其轻者。

怎么用实现分布式

其实网上已经有现成的轮子了

==>scrapy_redis <===

==>scrapy_cluster<===

==>distribute_crawler<== (这个值得关注一下,写的很简明扼要)

 

对比过scrapy redis 的代码,它的主要切入点是将scrapy 的队列接入到redis里面,这样取和存都是直接和redis打交道,去重都有redis里面,很方便。

我将要讲的是另外一种思路。

请参考下一篇文章 :(13)分布式下的爬虫Scrapy应该如何做-分布式架构

 

点赞
  1. leo说道:

    期待下文

    1. hi,I'm frank说道:

      回的好快- - ,会更新的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注