Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

分布式是如何体现的? #25

Open
lywhlao opened this issue Apr 17, 2016 · 4 comments
Open

分布式是如何体现的? #25

lywhlao opened this issue Apr 17, 2016 · 4 comments

Comments

@lywhlao
Copy link

lywhlao commented Apr 17, 2016

hi:
您好,
我看了一下这个工程,想问一下这个工程的分布式是如何体现的?
“要想尝试分布式,可以在另外一个目录运行此工程”。对句话我不是很理解。
我猜测是:同时运行多个实例,进行抓取。在这种情况下,是否会存在重复抓取的情况(如果在数据库中进行查重判断效率是否会低)?
我的思路是:1个master,n个Slave,媒介为redis。
master:负责url管理:分发url给slave,url的增加(1.自己获取的url)。 slave:通过url去下载资源。

@shangshanshi
Copy link

思路是对的,但其实不用那么复杂,各个爬虫直接去redis吃url就好,这个实现我具体也没看,不过推荐你看下scrapy-redis这个,这个就直接吃的,我觉得这个实现应该也是这个套路。我是小菜,github也用的不熟,希望能帮到你吧:)

@yaochao
Copy link

yaochao commented Jul 28, 2016

我要去看 scrapy-redis,话说这个scrapy怎么读啊,四个瑞派?

@marcolin
Copy link

@lywhlao 差不多就是你所描述的这样吧,在此项目的实现,就是将scheduler的队列(主要是request请求队列)放到redis服务器中,slave中的spider实例只管从队列取出请求去消费,本质便是将请求队列放到redis服务器中用于共享。由于调用简单,所以可以直接使用redis客户端操作来取代其它分布式系统中需要自己实现的RPC调用。

@yaochao
Copy link

yaochao commented Aug 3, 2016

谢谢^^ @marcolin

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants