[发明专利]一种分布式部署的网络数据采集系统有效
申请号: | 201910246570.1 | 申请日: | 2019-03-29 |
公开(公告)号: | CN110147475B | 公开(公告)日: | 2023-07-21 |
发明(设计)人: | 钟证业 | 申请(专利权)人: | 汇通达网络股份有限公司 |
主分类号: | G06F16/951 | 分类号: | G06F16/951;G06F16/955 |
代理公司: | 江苏圣典律师事务所 32237 | 代理人: | 吴庭祥 |
地址: | 210008 江苏省*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 部署 网络 数据 采集 系统 | ||
1.一种分布式部署的网络数据采集系统,其特征在于,包括任务管理模块、爬虫模块、分布式存储模块、监测报警模块和主控节点模块;
其中,所述任务管理模块负责存储URL库、维护网页采集任务状态、管理采集任务的进队与出队、URL种子定时调度、缓存已采集URL和所采集特定商品的库存量单位SKU;
所述爬虫模块用于完成采集和解析网页,并以两个以上独立的实例进程分布到不同节点机器上运行,以多线程的模式采集并解析网页;
所述监测报警模块能够主动发现爬虫进程宕机的情况,并通知系统运维人员;
所述任务管理模块包括任务状态库、任务管理器和URL种子定时器;
所述爬虫模块包括动态IP代理器、网页下载器、网页解析器和日志记录器;
所述分布式存储模块包括数据存储器、Kudu存储引擎和Impala查询引擎;
所述监测报警模块包括监控报警器、Zookeeper注册器和Zookeeper服务器;
所述主控节点模块包括RPC通信、速度控制、任务队列管理和爬虫启停;
所述任务状态库用于任务状态存储,以及URL和商品SKU缓存,任务状态库存储任务状态信息到MySQL数据库中,利用MySQL的行级事务确保单个任务的原子性操作;
所述任务管理器负责维护任务的生命周期,更新任务的不同状态,实现任务的出队与入队功能,确保任务队列操作的隔离安全,即同一个任务只分派给一个爬虫的一个线程;在采集最初始阶段时,URL种子定时器把预先配置的种子URL注入任务队列中,其中种子URL即为最初始的商品列表页URL;任务出队时,优先选择采集商品列表页的任务出队,通过爬虫模块下载此URL网页并解析出该网页中出现的商品列表页URL和商品详情页URL,然后将这些新解析出的URL放入任务队列中,当未开始任务队列中已没有商品列表页的任务时,才选择采集商品详情页的任务出队;任务入队时,把网页解析器解析出来的所有商品列表页和商品详情页的任务加入到队列中;
当所有商品列表页和商品详情页都采集完后,系统就一直处于空闲状态,URL种子定时器负责定时把所有种子URL注入到任务队列中,激活系统运转,URL种子定时器是一个独立的进程;
所述任务管理器具备断点恢复的功能,爬虫实例进程记录下当前正在处理的所有任务,当爬虫实例进程从失效状态恢复时,从断点开始继续任务;
所述动态IP代理器具备创建并维护IP库功能和代理IP失败统计功能,当一个代理IP失败次数达到预设的阈值时,把该代理IP从IP库中剔除,并以日志的方式记录下来;
所述网页下载器从任务中获得网页URL,通过HTTP请求下载相应的网页,爬虫实例进程创建Page对象,将下载的网页HTML脚本以文本的方式注入到Page对象中,把此Page对象传递给网页解析器;
所述网页解析器用于完成两个功能:从商品列表页里解析出所有商品详情页的URL、以及下一张商品列表页URL,并注入到Page对象的对应数据项中;
从商品详情页里提取出商品属性相关的信息数据,并注入到Page对象的对应数据项中;爬虫进程将解析出来的URL构建任务并加入到任务队列中,并把Page对象传递给分布式存储模块的数据存储器做数据入库;
所述日志记录器提供爬虫进程在关键运行位置记录重要日志信息的功能;
所述数据存储器用于把Page对象的数据存储到数据库中;
所述Kudu存储引擎和Impala查询引擎提供了基于SQL的即时数据查询功能;
所述监测报警模块通过如下方式实现报警功能:
在Zookeeper服务器上创建项目节点,每个爬虫启动时,Zookeeper注册器在Zookeeper的项目节点下以爬虫主机IP注册一个临时节点目录,当爬虫宕机时,该临时节点目录会被Zookeeper删除,监控报警器运行监控程序对项目节点目录进行监听,当节点下有目录数量改变时,Zookeeper会给监控程序发送通知,回调程序执行报警动作发送邮件给系统运维人员,从而完成监控报警的功能;
所述系统通过任务管理器结合MySQL数据库的行级锁机制来管理任务队列,MySQL数据库实现任务的安全隔离功能;
所述系统通过主控节点模块管理所有爬虫的启动、暂停和故障恢复,通过RPC协议进行主控节点模块和爬虫实例进程之间的通信。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于汇通达网络股份有限公司,未经汇通达网络股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910246570.1/1.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置