APP下载

基于Quartz的可视化爬虫管理系统

2020-05-18刘晓东林凤德朱文欢

科技创新与应用 2020年14期
关键词:网络爬虫监控管理

刘晓东 林凤德 朱文欢

摘  要:分布式爬虫系统复杂的构建过程使其在运行过程中出现任务错误的时候得不到及时的反馈和提醒,从而可能导致对应任务渠道的数据存在缺失;另外,对过程数据缺少必要的监控还可能导致所获数据并非我们最终所需。基于Quartz的可视化爬虫管理系统可以实现对爬虫任务状态和数据进行有效的监控和管理,确保分布式爬虫系统的稳定、高效运转,从而解决以上两点问题。

关键词:网络爬虫;Quartz;监控;管理

中图分类号:TP311.52 文献标志码:A         文章编号:2095-2945(2020)14-0193-03

Abstract: The complex construction process of the distributed crawler system makes it unable to get timely feedback and reminder when there is a task error in the running process, which may lead to the lack of data in the corresponding task channel. In addition, the lack of necessary monitoring of the process data may also lead to the fact that the data obtained is not what we ultimately need. The visual crawler management system based on Quartz can effectively monitor and manage the crawler task status and data, and thus ensure the stable and efficient operation of the distributed crawler system, so as to solve the above two problems.

Keywords: Web crawler; Quartz; monitoring; management

1 概述

众所周知,管理是为了提高效率和质量。同样的,爬虫管理系统是为了能够监控分布式爬虫系统,让分布式爬虫系统数据获取高效,保证数据的质量。爬虫管理系统是分布式爬虫系统的有力补充,两者是相辅相成的[1]。

实现爬虫管理系统除了要达到监控和管理的基本要求外,一般还要求系统的开发要简单易上手。Quartz的以下特点可以很好的满足构建可视化爬虫管理系统的要求:第一,功能丰富且配置简单。Quartz的环境依赖程度低,Java的普通应用均能使用;第二,能够完成较为复杂的定时任务,实现稳定、快速的分布式定时爬虫系统的构建;第三,由于Quartz各个节点的状态保存在数据库中,在已有数据库表状态上开发对应的爬虫管理系统,能够很好的对分布式系统实现增删改查的监控和管理[2],提高系统的可操作性和稳定性;第四,Quartz可以结合现如今非常热门的SpringBoot,使其开发简单易上手。

2 爬虫系统的上下游

分布式爬虫系统的上下游如图1所示,爬虫系统集群从网络中获取所需数据,根据数据的特性进行编码,引入Redis来去重,去重后的数据发Kafka集群,供下游应用;同时爬虫管理端提供RESTful接口,监控爬虫集群,管理集群中的任务[3]。基于Quartz的分布式实现需要以数据库作为边界,为此选取Mysql为基础数据库[4]。

3 系統监控和管理

基于Quartz开发的可视化爬虫管理系统能够实现监控和管理两个主要的功能[5]。对于监控会从任务和数据两个层面来阐述;而对于管理功能主要体现在能够实现动态的增删改查。

3.1 任务监控

根据Quartz本身维护的mysql数据库基础表并结合自己设计的t_crawler_task表和t_sched_card表可以实现对爬虫任务的可视化。Quartz本身维护的mysql数据库表具有节点状态、任务状态及抓取数据的统计等内容。如图2展示了各个节点的状态。

当要查看单节点中正在运行任务信息时,只需点击操作就能获取到相应的信息。如图3所示,图中展示了节点中正在运行的所有任务及相关信息。对于任务维度来说,任务自身带有一些信息,在爬虫管理端中也实现了对于任务的监控。如图4所示,在页面中会展示该任务对应的爬虫规则,以及是否在集群中运行,是否正在运行,而且还可以通过操作来获取更多信息,从多个维度来监控任务。总结来说,从节点切入,然后到运行的任务,从而转向任务层面。任务的监控内容包括任务的基本属性以及任务与集群的相应关系。如果能实时获取任务当前状态,并且提供相应操作提醒,就能实现很好的监控功能。

3.2 数据监控

从整体层次来看,需要监控的就是同种类型数据每天的数据量以及总的数据量。这里,我们只选取一些主要的渠道,每天的数据量和总的数据量,如门户网站的新闻、快讯、自媒体新闻等等。在对总体数据做粗粒度监控后就需要监控每个渠道对应数据。这里,每个渠道的数据取该渠道过去一周的平均值,且标记出距离当前时间最近一条数据的时间节点。当超过三天没有数据,对应的渠道的字体就会加粗变色,同时发邮件或短信告知管理者需要关注该渠道出现的问题,如图5所示。点击监控可以了解对应渠道在近一个月内每天爬取的数据统计情况,如图6所示(图中的例子是看看新闻网渠道)。从以上的展示来看,对于数据的监控先从整体监控,而后转到关注每一个渠道每天数据量的监控,这样既能够很好的从面上展示整体数据,也能够从细节上监控好每个渠道获取的数据量。

3.3 动态管理任务

动态的管理任务一方面是指能够在集群系统正常工作时进行操作,另一方面是指对任务的动态增删改查及定制化。由于Quartz的实现需要对任务进行各种参数配置,所以要实现动态增加任务,需要在网页上把对应任务的信息配置到数据库中,并且通过预留的接口把任务添加到集群中;对于动态修改各种参数,需要先将该任务从集群中剔除,随后把设置好的任务重新动态添加到集群中;对于删除任务,需要先把任务从集群中剔除,然后再删除配置表,这个任务才算完整删除。

对于按账号或关键字来获取数据,要实现动态操作账号或关键字的数据,需要维护一张对应的任务账号表,当需要操作账号的时候,只需在页面中修改对应任务账号表就能够实现动态操作,而无需停止该任务。

4 结束语

本文基于Quartz架构的特性来构建可视化的爬虫管理系统,在保证分布式爬虫系统正常运行的同时还监控了数据的可靠性。爬虫管理系统是分布式爬虫系统的有力补充,有了该系统,对于大规模的增加爬虫渠道、增加数据爬取的维度,只需在网页上操作,方便且简易。

参考文献:

[1]刘志鹏,卫晨.基于Quartz与Spring的动态任务调度系统的设计与实现[J].计算机光盘软件与应用,2014(13):263-264.

[2]张康.基于Quartz的分布式定时任务调度模块的设计与实现[D].南京大学,2019.

[3]梁思率,王臻,杨树国.清华大学仪器共享平台性能优化实践[J].实验技术与管理,2016,33(04):240-243.

[4]张鹏,白朝旭,王锟,等.基于Quartz的集团化调度任务分布部署研究[J].现代电子技术,2014(2):80-83.

[5]叶刚.基于Quartz的可视化定时任务管理方案[J].电子技术与软件工程,2018(17):139-140.

猜你喜欢

网络爬虫监控管理
通信电源监控系统在电力通信中的应用
GPS/DR/GIS技术在基于GSM—R列车监控系统中应用
炼铁厂铁量网页数据获取系统的设计与实现
基于社会网络分析的权威网页挖掘研究
主题搜索引擎中网络爬虫的实现研究
采用C—NCAP 2006年版管理规则
浅析如何应对网络爬虫流量
营销管理
“这下管理创新了!等7则
侦察兵