分布式爬虫 02-爬虫管理

    scrapy是一个成熟的框架,便于编写,易于扩展。但本身并不支持分布式,可使用scrapy-redis组件进行分布式抓取,简单的说,利用redis作为任务队列,scrapy作为worker,多个worker从一个队列中获取任务,进行抓取,解析,清洗,并入库。但多个worker往往分布在各个服务器上,不便于统一管理以及监控。此时可以使用scrapyd,进行简单的管理。

      如果采用python协程去编写worker,利用redis(轻量级)或RabbitMQ(重量级)作为任务队列调度,那么可以采用supervisord进行work而管理,如果需要多台服务器协同管理,可采用supervisord的cesi扩展,同时对多个服务器的爬虫任务进行调度管理。

       爬虫的管理,不仅仅只有调度管理,还应包括日志系统的管理和收集。当爬虫集中在一台服务器时,可采用统一路径进行日志记录,便于查看管理。当爬虫在多个服务器运行时,需要查看日志则是一个比较麻烦的事。此时可采用ELK框架中的logstash在多服务器进行日志采集,并汇总到目标服务器,便于统一查看,管理。logstash运行占用资源较为严重,轻量级用户应使用filebeat进行日志采集汇总,并采取增量更新模式。

       对于运行爬虫服务的服务器,也应该进行管理和信息收集。避免因为日志文件过大,服务器故障,硬盘没有空间,服务器内存不够等问题发生,影响甚至是停止爬虫服务。如果购买阿里云服务器,也可在阿里控制台查看服务器状态。这里推荐使用zabbix进行服务器的监控。zabbix复杂但全面,可全面的监控每台服务器的各种状态,并配置刷新频率,直观的在web界面查看每台或同时查看多太服务器状态,并可通过触发器发送邮件。避免出现严重问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值