其他分享
首页 > 其他分享> > 基于 pyspider 搭建分布式集群爬虫流程

基于 pyspider 搭建分布式集群爬虫流程

作者:互联网

背景介绍

pyspider 架构,大概的流程如下图所示:

pyspider

 

整个 pyspider 的各个模块间的任务传递是由**消息队列**传输的,其中任务的调度则是由「scheduler」模块控制,所以按作者的意思,除了「scheduler」调度模块只能单点,其他的「fetcher」,「processor」,甚至是「monitor & webui」,都可以实现多实例分布式部署。

这样一来分布式 pyspider 的瓶颈就在单点的 「scheduler」 节点的消费能力了,实际跑起来观察后发现确实「processor」到「scheduler」发送任务的队列经常消费不过来。

言归正传

之前将单机的 pyspider 部署在一台机子上,这一台负责「数据存储」,「消息队列」,「任务调度」,「URL请求」,「页面处理」全部的爬虫相关任务,导致 CPU 利用率一直很高。
所以现在单独开了一台机子,专门负责「URL请求」和「页面处理」,即上述的「fetcher」和「processor」模块。

主机地址、数据库、消息队列

标签:模块,队列,爬虫,scheduler,pyspider,processor,分布式
来源: https://blog.51cto.com/u_15187242/2746859