问题描述
使用scrapy-redis进行分布式抓取时,遇到了一个很奇怪的问题,有俩台机器,Windows电脑A,和Ubuntu电脑B,redis server部署在 Windows电脑A上,在电脑A,B启动爬虫后,俩只爬虫都进入监听状态,在redis中进行 url的lpush操作,奇怪的事情发生了,电脑A,或者电脑B中只有一台电脑能监听到 redis,但是具体哪个能够监听到这个很随机,有时是电脑A,有时是电脑B,我能确保,电脑A和B都是连接上了 redis的
运行环境
- scrapy 1.5.0
- scrapy-redis 0.6.8
- redis.py 2.10.6
- redis-server(windows x64) 3.2.100
运行截图
分别启动俩个spider
第一次进行url的lpush操作,结果如下
这时只有爬虫A监听到了 redis的操作,执行抓取逻辑,而爬虫B仍然处于监听状态
手动停止俩只spider,并清空redis数据,再次开启爬虫,执行lpush操作,结果如下
这时,爬虫B却监听到了redis的操作,执行抓取逻辑,而爬虫A仍处于监听状态
还有一张是lpush后 redis中的数据情况
被这个问题困扰了2天了,这俩天一直没怎么睡,查了好多资料,试了好多办法,都不行,中间我把redis服务放在了电脑c上,但是还行不行。
希望前辈们,能指点一二
排查思路
解决办法