python爬虫日记本爬虫进化日记爬虫专题

分布式爬虫笔记(三)- 分布式存储

2017-08-09  本文已影响125人  Spareribs

分布式存储

分布式的存储包括网页文件的存储和爬虫队列的存储,在前面分享的分布式爬虫笔记(二)- 多线程&多进程爬虫实现多线程爬虫使用deque来存储URL信息,实现多线程爬虫使用mysql来存储URL信息。

代码下载

多进程爬虫 - mongo :与mysql的多进程类似,只是换了一个数据库
多进程爬虫 - mongo+redis

对比分析

多线程

多线程.jpg

多线程 + 多进程

多线程 +多进程 .jpg

多线程 + 多进程(改进)

架构 获取URL(避免多个进程获取同一个URL获取) 去重
Deque
Spider threading
BloomFilter
通过Deque双向队列的pop获取 BloomFilter
Mysql
Spider threading
Spider process
通过Mysql的status字段加行级锁 通过Mysql UNIQUE KEY唯一
Mongo
Spider threading
Spider process
redis
Mongo的锁 redis
多线程 +多进程(改进).jpg
架构 获取URL(避免多个进程获取同一个URL获取) 去重
Deque
Spider threading
BloomFilter
通过Deque双向队列的pop获取 BloomFilter
Mysql
Spider threading
Spider process
通过Mysql的status字段加行级锁 通过Mysql UNIQUE KEY唯一
Mongo
Spider threading
Spider process
redis
Mongo的锁 redis

后记

基本上都是类似的内容,换汤不换药,但是从性能和效率方面会有很大的提高,数据存储使用mongo方面爬虫数据方面存储的扩展,高效的redis内存级别的速度,能提高判断效率加快爬取进度。

以上都是我的个人观点,如果有不同的看法,或者有更好的方法,欢迎留言~~~

上一篇下一篇

猜你喜欢

热点阅读