CN106383896A - 一种基于爬虫+RocketMQ的数据抓取分发方法 - Google Patents

一种基于爬虫+RocketMQ的数据抓取分发方法 Download PDF

Info

Publication number
CN106383896A
CN106383896A CN201610856749.5A CN201610856749A CN106383896A CN 106383896 A CN106383896 A CN 106383896A CN 201610856749 A CN201610856749 A CN 201610856749A CN 106383896 A CN106383896 A CN 106383896A
Authority
CN
China
Prior art keywords
data
rocketmq
message
topic
supports
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610856749.5A
Other languages
English (en)
Inventor
甄教明
王茂帅
柳廷娜
高峰
王明君
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Software Group Co Ltd
Original Assignee
Inspur Software Group Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Software Group Co Ltd filed Critical Inspur Software Group Co Ltd
Priority to CN201610856749.5A priority Critical patent/CN106383896A/zh
Publication of CN106383896A publication Critical patent/CN106383896A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于爬虫+RocketMQ的数据抓取分发方法,属于计算机数据挖掘技术领域,RocketMQ是一款分布式、队列模型的消息中间件,支持严格的消息顺序,支持Topic与Queue两种模式,亿级消息堆积能力,比较友好的分布式特性,同时支持Push和Pull方式消费消息,RocketMQ的集群部署中,NameServer是无状态节点,节点之间也没有信息交流;RocketMQ的消费端支持多种不同的数据源接入,可以按Topic对消费端进行分类,从而完成数据分发的功能。本发明将抓取的数据存储到指定的文件系统或者数据库中以供其他应用使用。

Description

一种基于爬虫+RocketMQ的数据抓取分发方法
技术领域
本发明涉及计算机数据挖掘技术领域,具体地说是一种基于爬虫+RocketMQ的数据抓取分发方法。
背景技术
互联网的数据抓取主要由网络爬虫来完成,而数据抓取的最终目的是为了利用已爬取的数据来为各种应用分析提供数据支持。比如搜索,数据挖掘,预测等等。而在具体生产环境中,不同的应用可能对于数据源的存储也有不同的需求,有的可能需要从关系型数据库中读取相关信息,有的可能需要支持非关系型数据库,有的需要将数据存储在文件系统等等。如何能够简易快速的将数据存储在指定的数据源中,也是对爬虫的很重要的要求。
传统的做法可能是需要使爬虫预留不同的接口,从而可以实现针对不同数据源的支持。这样存在一定的局限性,针对不同的数据源就要编写不同的程序来实现,效率较低。是否存在一种方法可以负责将爬取的数据自动抽取到不同的数据源中,爬虫只负责产生数据而不关心数据的流向。
发明内容
本发明的技术任务是针对以上不足之处,提供一种基于爬虫+RocketMQ的数据抓取分发方法,将抓取的数据存储到指定的文件系统或者数据库中以供其他应用使用。
本发明解决其技术问题所采用的技术方案是:
一种基于爬虫+RocketMQ的数据抓取分发方法, RocketMQ是一款分布式、队列模型的消息中间件,支持严格的消息顺序,支持Topic与Queue两种模式,亿级消息堆积能力,比较友好的分布式特性,同时支持Push和Pull方式消费消息,
RocketMQ的集群部署中,NameServer是无状态节点,节点之间也没有信息交流,Broker分为Master与Slave,Producer负责产生消息,并且与NameServer集群中的其中一个节点建立长连接,定时向Master发送心跳,定期从NameServer获取Topic路由信息,Consumer同样与Nameserver集群中其中一个节点建立长连接,定期从NameServer获取Topic路由信息,定时向Master、Slaver发送心跳;
RocketMQ的消费端支持多种不同的数据源接入,可以按Topic对消费端进行分类,从而完成数据分发的功能,可以支持hbase,hdfs,关系型数据库,本地系统文件存储;使爬虫只负责不断的按指定的Topic生成数据,数据就可以源源不断的通过消费端到达不同的数据源进行存储。
RocketMQ完成数据分发的功能,将上一步所产生的数据分发到不同的消费端,从而将数据存储到不同的数据源中,以便于后期应用。
根据RocketMQ提供的各种API进行一定的开发,使其可以将数据存储到指定的消费端数据源。
数据抓取分发流程如下:
1)通过前台页面进行RocketMQ集群选择,Topic选择,Schema制定的参数配置;
2)基础爬虫组件抓取网站数据,并根据步骤1)的相关配置将数据封装成一定格式的消息体,发送到RocketMQ;
3)RocketMQ的各个消费端根据消息订阅的设定,将产生的消息体中数据存储到指定的数据源中,以便于后期应用。
本发明的一种基于爬虫+RocketMQ的数据抓取分发方法和现有技术相比,具有以下有益效果:
在网络爬虫中,最终的想要达到的目的是将抓取的数据存储到指定的文件系统或者数据库中以供其他应用使用。但是在实际生产环境中有可能需要将数据存储于不同的目标系统中以满足不同应用的使用,如果为每一种系统都提供不同的数据存储方法,一方面会增加系统的复杂性,另一方面也会影响爬虫的性能。而基于RocketMQ的消息订阅分发机制,可以很好地解决这个问题,将爬取的消息按指定的schema和主题发送到RocketMQ中,不同的消费端分别对应不同的数据存储系统,这样爬虫就可以只负责产生消息,而不用关心数据的消费情况。不仅可以使数据采集和存储分离,而且可以减小爬虫系统的负载;
基于爬虫+RocketMQ的数据抓取分发方法,可以使数据抓取和数据转存进行分离,爬虫只专注于数据抓取并将其作为消息按指定的Topic和Schema发送到MQ端,这样可以大大的提高数据存储的效率;
RocketMQ是经过实战验证的开源分布式框架,可以亿级数据的并发量,可灵活的控制数据存储的方式和通道。
具体实施方式
下面结合具体实施例对本发明作进一步说明。
一种基于爬虫+RocketMQ的数据抓取分发方法, RocketMQ是一款分布式、队列模型的消息中间件,支持严格的消息顺序,支持Topic与Queue两种模式,亿级消息堆积能力,比较友好的分布式特性,同时支持Push和Pull方式消费消息,
RocketMQ的集群部署中,NameServer是无状态节点,节点之间也没有信息交流,Broker分为Master与Slave,Producer负责产生消息,并且与NameServer集群中的其中一个节点建立长连接,定时向Master发送心跳,定期从NameServer获取Topic路由信息,Consumer同样与Nameserver集群中其中一个节点建立长连接,定期从NameServer获取Topic路由信息,定时向Master、Slaver发送心跳;
RocketMQ的消费端支持多种不同的数据源接入,可以按Topic对消费端进行分类,从而完成数据分发的功能,可以支持hbase,hdfs,关系型数据库,本地系统文件存储;使爬虫只负责不断的按指定的Topic生成数据,数据就可以源源不断的通过消费端到达不同的数据源进行存储。
RocketMQ完成数据分发的功能,将上一步所产生的数据分发到不同的消费端,从而将数据存储到不同的数据源中,以便于后期应用。
根据RocketMQ提供的各种API进行一定的开发,使其可以将数据存储到指定的消费端数据源。
数据抓取分发流程如下:
1)通过前台页面进行RocketMQ集群选择,Topic选择,Schema制定的参数配置;
2)基础爬虫组件抓取网站数据,并根据步骤1)的相关配置将数据封装成一定格式的消息体,发送到RocketMQ;
3)RocketMQ的各个消费端根据消息订阅的设定,将产生的消息体中数据存储到指定的数据源中,以便于后期应用。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。

Claims (4)

1.一种基于爬虫+RocketMQ的数据抓取分发方法,其特征在于RocketMQ是一款分布式、队列模型的消息中间件,支持严格的消息顺序,支持Topic与Queue两种模式,亿级消息堆积能力,比较友好的分布式特性,同时支持Push和Pull方式消费消息,
RocketMQ的集群部署中,NameServer是无状态节点,节点之间也没有信息交流;Broker分为Master与Slave,Producer负责产生消息,并且与NameServer集群中的其中一个节点建立长连接,定时向Master发送心跳,定期从NameServer获取Topic路由信息,Consumer同样与Nameserver集群中其中一个节点建立长连接,定期从NameServer获取Topic路由信息,定时向Master、Slaver发送心跳;
RocketMQ的消费端支持多种不同的数据源接入,可以按Topic对消费端进行分类,从而完成数据分发的功能,可以支持hbase,hdfs,关系型数据库,本地系统文件存储;使爬虫只负责不断的按指定的Topic生成数据,数据就可以源源不断的通过消费端到达不同的数据源进行存储。
2.根据权利要求1所述的一种基于爬虫+RocketMQ的数据抓取分发方法,其特征在于RocketMQ完成数据分发的功能,将上一步所产生的数据分发到不同的消费端,从而将数据存储到不同的数据源中,以便于后期应用。
3.根据权利要求2所述的一种基于爬虫+RocketMQ的数据抓取分发方法,其特征在于根据RocketMQ提供的各种API进行一定的开发,使其可以将数据存储到指定的消费端数据源。
4.根据权利要求1所述的一种基于爬虫+RocketMQ的数据抓取分发方法,其特征在于数据抓取分发流程如下:
1)通过前台页面进行RocketMQ集群选择,Topic选择,Schema制定的参数配置;
2)基础爬虫组件抓取网站数据,并根据步骤1)的相关配置将数据封装成一定格式的消息体,发送到RocketMQ;
3)RocketMQ的各个消费端根据消息订阅的设定,将产生的消息体中数据存储到指定的数据源中,以便于后期应用。
CN201610856749.5A 2016-09-28 2016-09-28 一种基于爬虫+RocketMQ的数据抓取分发方法 Pending CN106383896A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610856749.5A CN106383896A (zh) 2016-09-28 2016-09-28 一种基于爬虫+RocketMQ的数据抓取分发方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610856749.5A CN106383896A (zh) 2016-09-28 2016-09-28 一种基于爬虫+RocketMQ的数据抓取分发方法

Publications (1)

Publication Number Publication Date
CN106383896A true CN106383896A (zh) 2017-02-08

Family

ID=57936877

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610856749.5A Pending CN106383896A (zh) 2016-09-28 2016-09-28 一种基于爬虫+RocketMQ的数据抓取分发方法

Country Status (1)

Country Link
CN (1) CN106383896A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107066526A (zh) * 2017-02-23 2017-08-18 武汉智寻天下科技有限公司 一种网络爬虫系统及方法
CN107193960A (zh) * 2017-05-24 2017-09-22 南京大学 一种分布式爬虫系统及周期性增量抓取方法
CN112769924A (zh) * 2020-12-31 2021-05-07 平安科技(深圳)有限公司 RocketMQ的分布式部署方法、装置、设备及介质
CN113138921A (zh) * 2021-04-23 2021-07-20 上海中通吉网络技术有限公司 一种信息查询验证方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107066526A (zh) * 2017-02-23 2017-08-18 武汉智寻天下科技有限公司 一种网络爬虫系统及方法
CN107193960A (zh) * 2017-05-24 2017-09-22 南京大学 一种分布式爬虫系统及周期性增量抓取方法
CN112769924A (zh) * 2020-12-31 2021-05-07 平安科技(深圳)有限公司 RocketMQ的分布式部署方法、装置、设备及介质
CN112769924B (zh) * 2020-12-31 2022-04-15 平安科技(深圳)有限公司 RocketMQ的分布式部署方法、装置、设备及介质
CN113138921A (zh) * 2021-04-23 2021-07-20 上海中通吉网络技术有限公司 一种信息查询验证方法

Similar Documents

Publication Publication Date Title
CN106383896A (zh) 一种基于爬虫+RocketMQ的数据抓取分发方法
CN104820717B (zh) 一种海量小文件存储及管理方法和系统
CN106815338A (zh) 一种大数据的实时存储、处理和查询系统
CN102243660A (zh) 一种数据访问方法及设备
Londhe et al. Platforms for big data analytics: Trend towards hybrid era
CN102169505A (zh) 基于云计算的推荐系统构建方法
CN106503276A (zh) 一种用于实时监控系统的时间序列数据库的方法与装置
CN102567495A (zh) 一种海量信息存储系统及实现方法
CN105205105A (zh) 一种基于storm的数据ETL系统及处理方法
CN105354250A (zh) 一种面向云存储的数据存储方法及装置
CN103345502A (zh) 分布式数据库的事务处理方法和系统
CN102402507A (zh) 一种soa多消息机制的异构数据集成系统
CN102663007A (zh) 一种支持敏捷开发和横向扩展的数据存储与查询方法
CN105677761A (zh) 一种数据切分的方法及系统
CN101272399A (zh) 一种基于p2p网络实现全文检索系统的方法
CN103294799B (zh) 一种数据并行批量导入只读查询系统的方法及系统
CN110851536A (zh) 一种具有主从区块的区块链构建方法
Koulouzis et al. Enabling web services to consume and produce large datasets
CN104580422A (zh) 基于共享缓存的集群渲染节点数据访问方法
CN103281383B (zh) 一种面向分布式数据源的时序信息记录方法
CN104407811B (zh) 一种基于云计算的合并io装置
CN104679482A (zh) 基于osgi的etl处理装置及方法
CN103176850A (zh) 一种基于负载均衡的电力系统网络集群任务分配方法
CN113360576A (zh) 一种基于Flink Streaming的电网海量数据实时处理方法及装置
CN106909460A (zh) 数据缓冲方法、装置及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170208

WD01 Invention patent application deemed withdrawn after publication