一种基于MongoDB和Redis的网页数据采集处理方法及系统技术方案

技术编号:15691017 阅读:113 留言:0更新日期:2017-06-24 03:53
本发明专利技术公开了一种基于MongoDB和Redis的网页数据采集处理方法及系统,该方法首先设定网页下载请求的格式;然后为下载请求分配全局唯一ID;依照配置中心预置的对应业务负载均衡策略,完成对请求的转发;采用MongoDB的副本集架构将请求按业务类型分库分表。将请求写入MongoDB数据库,并用id字段覆盖MongoDB默认的_id索引,对ts字段建立TTL索引,同时将id、biz、ts三个字段转json格式后,利用lpush操作压入Redis消息队列;最后各下载服务器一直保持监听Redis消息队列,轮询提取请求并下载解析网页,获取目标数据记录入库。本发明专利技术结合Redis内存消息队列和Mongodb副本集架构实施的分布式网页下载请求存储方案,构建成本低、简单实用。

Web data acquisition and processing method and system based on MongoDB and Redis

The invention discloses a web based data acquisition and processing method and system of MongoDB and Redis, this method first set the page download request format; download request distribution globally unique ID then; in accordance with the corresponding load balancing strategy business center to complete the preset configuration, request forwarding; set architecture will request according to business type split a copy of the table by MongoDB. The request is written to the MongoDB database, and cover the _id index MongoDB default ID field, build TTL index on the TS field, while ID, biz and TS three field to JSON format, press the Redis message queue using the lpush operation; finally, the download server keeps monitoring Redis message queue polling extraction request and download parsing web pages, access records storage target data. The invention combines the Redis memory message queue and the Mongodb replica set architecture to implement the distributed web page downloading request storage scheme, and has the advantages of low cost, simple and practical use.

【技术实现步骤摘要】
一种基于MongoDB和Redis的网页数据采集处理方法及系统
本专利技术涉及数据采集
,特别涉及一种基于MongoDB和Redis的网页数据采集处理方法及系统。
技术介绍
当前处于一个信息爆发增长的数据时代,专业化的数据分析和深度挖掘,不断孕育出巨大商机。越来越多企业由传统模式的依靠直觉和经验判断,转向依靠大数据分析和预测来制定企业战略决策,各企业对数据的获取需求愈加强烈。特别地,对于那些并不直接生产大数据的互联网中小企业而言,通过网络爬虫技术实施有针对性、行业性、精准性的数据采集,间接建立企业的“大数据战略”体系,就显得尤为重要。不仅能大大降低企业大数据信息建设的成本,更能满足企业业务发展要求,充分利用网络数据价值,达到利益更大化。
技术实现思路
本专利技术的目的在于针对现有技术的不足,提供一种基于MongoDB和Redis的网页数据采集处理方法及系统,便于企业低成本、高效率建立满足自身业务发展需求的数据仓库。本专利技术的目的是通过以下技术方案来实现的:一种基于MongoDB和Redis的网页数据采集处理方法,该方法包括以下步骤:(1)设定网页下载请求的格式:请求唯一标识符id、业务类型biz、时间戳ts、请求实体内容data、消息处理状态flag;(2)为下载请求分配全局唯一ID,对应下载请求的id字段;(3)基于分布式协同服务,在配置中心预置各业务的网页请求解析规则映射表、持久化节点列表、MongoDB数据库名、集合名、集合水平拆分数、Redis消息队列名。(4)依照配置中心预置的对应业务负载均衡策略,完成对请求的转发:首先根据下载请求的业务类型biz,从配置中心获取该biz预先定义的持久化节点列表、MongoDB数据库名、集合名、集合水平拆分数、Redis消息队列名,再结合对唯一标识符id求模取余策略,将请求持久化到MongoDB相应的数据库和集合,同时在Redis消息队列记录此条请求;(5)采用MongoDB的副本集架构将请求按业务类型分库分表。将请求写入MongoDB数据库,并用id字段覆盖MongoDB默认的_id索引,对ts字段建立TTL索引,同时将id、biz、ts三个字段转json格式后,利用lpush操作压入Redis消息队列;(6)各下载服务器一直保持监听Redis消息队列,轮询提取请求并下载解析网页,获取目标数据记录入库。进一步地,所述步骤6具体为:首先利用rpop或其阻塞版操作brpop从队列弹出请求,再结合id、biz和ts这三个字段组合成查询过滤条件,然后调用MongoDB的原子操作findAndModify查询对应的MongoDB持久化节点的数据库和集合,即可得到完整的请求内容,根据该请求附带的解析规则映射表,解析页面获取目标数据记录入库。进一步地,在步骤1-步骤6中,实时监控网页下载请求的生成速率;监控服务节点的健康状况:包括数据库存储容量、内存使用率、慢查询操作,以及内存消息队列的内存占用、消息积压程度等,当遭遇节点故障或服务性能下滑超过设定阈值时,及时以短信或邮件方式发送报警信息;监控下载请求的处理速率,发现请求积压严重或无法在计划时间内完成处理时,及时增加处理节点动态扩容。进一步地,所述步骤2中,使用SnowFlake为下载请求分配全局唯一ID。一种基于MongoDB和Redis的网页数据采集处理系统,该系统包括以下模块:全局ID生成器模块、请求路由转发模块、配置中心、持久化模块和消息队列模块;所述全局ID生成器模块为下载请求分配全局唯一ID,对应下载请求的id字段;所述配置中心基于分布式协同服务,预置各业务的网页请求解析规则映射表、持久化节点列表、MongoDB数据库名、集合名、集合水平拆分数、Redis消息队列名;所述请求路由转发模块依照配置中心预置的对应业务负载均衡策略,完成对请求的转发:首先根据下载请求的业务类型biz,从配置中心获取该biz预先定义的持久化节点列表、MongoDB数据库名、集合名、集合水平拆分数、Redis消息队列名,再结合对唯一标识符id求模取余策略,将请求持久化到MongoDB相应的数据库和集合,同时在Redis消息队列记录此条请求;所述持久化模块采用MongoDB的副本集架构将请求按业务类型分库分表;将请求写入MongoDB数据库,并用id字段覆盖MongoDB默认的_id索引,对ts字段建立TTL索引;所述消息队列模块:在请求生成者端,将请求持久化到MongoDB同时,将id、biz、ts三个字段转json格式后,利用lpush操作压入Redis消息队列。在请求消费者端,各下载服务器一直保持监听Redis消息队列,利用rpop或其阻塞版操作brpop从队列弹出请求,再结合id、biz和ts这三个字段组合成查询过滤条件,然后调用MongoDB的原子操作findAndModify查询对应的MongoDB持久化节点的数据库和集合,即可得到完整的请求内容,根据该请求附带的解析规则映射表,解析页面获取目标数据记录入库。进一步地,该系统还包括服务监控模块,该模块实时监控网页下载请求的生成速率;监控服务节点的健康状况:包括数据库存储容量、内存使用率、慢查询操作,以及内存消息队列的内存占用、消息积压程度等,当遭遇节点故障或服务性能下滑超过设定阈值时,及时以短信或邮件方式发送报警信息;监控下载请求的处理速率,发现请求积压严重或无法在计划时间内完成处理时,及时增加处理节点动态扩容。本专利技术的有益效果是:本专利技术结合Redis内存消息队列和Mongodb副本集架构实施的分布式网页下载请求存储方案,构建成本低、简单实用,具体表现在:1.可支撑每日千万量级请求的高效可靠存储;2.服务端自动执行过期请求清理,避免了消息积压,提升请求处理效率。3.具备快速透明的消息查询跟踪功能,这是按业界较常用的内存消息队列或消息中间件存储方案,是难以做到的。附图说明图1是本专利技术实施例的网页下载请求的主要流程示意图;图2是请求路由转发模块执行流程示意图;图3是持久化模块结构示意图;图4是下载服务器处理下载请求流程示意图。具体实施方式下面结合附图及具体实施方式对本专利技术作进一步详细说明。为方便开展后续介绍,先阐述自定义的网页下载请求各字段格式设计:1.字段名:id,数据类型为长整型,表示请求唯一标识符。通常由全局ID生成服务分配;一方面,可以根据该字段按指定负载均衡策略将该请求转发到指定存储节点和消息队列,另一方面,利用该字段覆盖MongoDB默认的_id索引,当按该字段查询和定位消息处理记录状态时,效率极高。2.字段名:biz,数据类型为字符串,记录该消息由何种业务产生。对于请求的生产者,查询注册中心获取该类业务的消息队列各服务节点,路由到指定的消息队列;对于消费者,根据该字段可以筛选和处理其感兴趣的业务消息。3.字段名:ts,数据类型为时间戳,记录消息写入队列时刻。特别地,通过在该字段上建立TTL索引,可以将那些超过预设时间但未被处理的消息交给MongoDB服务器自动清理掉,避免消息大量堆积;另一方面,请求消费者也可以根据该索引字段筛选或过滤消息。4.字段名:data,数据类型为字节数组,真正的请求实体内容(如:页面Url,解析规则在配置中心对应提取编号、http请求头本文档来自技高网...
一种基于MongoDB和Redis的网页数据采集处理方法及系统

【技术保护点】
一种基于MongoDB和Redis的网页数据采集处理方法,其特征在于,该方法包括以下步骤:(1)设定网页下载请求的格式:请求唯一标识符id、业务类型biz、时间戳ts、请求实体内容data、消息处理状态flag;(2)为下载请求分配全局唯一ID,对应下载请求的id字段;(3)基于分布式协同服务,在配置中心预置各业务的网页请求解析规则映射表、持久化节点列表、MongoDB数据库名、集合名、集合水平拆分数、Redis消息队列名。(4)依照配置中心预置的对应业务负载均衡策略,完成对请求的转发:首先根据下载请求的业务类型biz,从配置中心获取该biz预先定义的持久化节点列表、MongoDB数据库名、集合名、集合水平拆分数、Redis消息队列名,再结合对唯一标识符id求模取余策略,将请求持久化到MongoDB相应的数据库和集合,同时在Redis消息队列记录此条请求;(5)采用MongoDB的副本集架构将请求按业务类型分库分表。将请求写入MongoDB数据库,并用id字段覆盖MongoDB默认的_id索引,对ts字段建立TTL索引,同时将id、biz、ts三个字段转json格式后,利用lpush操作压入Redis消息队列;(6)各下载服务器一直保持监听Redis消息队列,轮询提取请求并下载解析网页,获取目标数据记录入库。...

【技术特征摘要】
1.一种基于MongoDB和Redis的网页数据采集处理方法,其特征在于,该方法包括以下步骤:(1)设定网页下载请求的格式:请求唯一标识符id、业务类型biz、时间戳ts、请求实体内容data、消息处理状态flag;(2)为下载请求分配全局唯一ID,对应下载请求的id字段;(3)基于分布式协同服务,在配置中心预置各业务的网页请求解析规则映射表、持久化节点列表、MongoDB数据库名、集合名、集合水平拆分数、Redis消息队列名。(4)依照配置中心预置的对应业务负载均衡策略,完成对请求的转发:首先根据下载请求的业务类型biz,从配置中心获取该biz预先定义的持久化节点列表、MongoDB数据库名、集合名、集合水平拆分数、Redis消息队列名,再结合对唯一标识符id求模取余策略,将请求持久化到MongoDB相应的数据库和集合,同时在Redis消息队列记录此条请求;(5)采用MongoDB的副本集架构将请求按业务类型分库分表。将请求写入MongoDB数据库,并用id字段覆盖MongoDB默认的_id索引,对ts字段建立TTL索引,同时将id、biz、ts三个字段转json格式后,利用lpush操作压入Redis消息队列;(6)各下载服务器一直保持监听Redis消息队列,轮询提取请求并下载解析网页,获取目标数据记录入库。2.根据权利要求1所述的一种基于MongoDB和Redis的网页数据采集处理方法,其特征在于,所述步骤6具体为:首先利用rpop或其阻塞版操作brpop从队列弹出请求,再结合id、biz和ts这三个字段组合成查询过滤条件,然后调用MongoDB的原子操作findAndModify查询对应的MongoDB持久化节点的数据库和集合,即可得到完整的请求内容,根据该请求附带的解析规则映射表,解析页面获取目标数据记录入库。3.根据权利要求1所述的一种基于MongoDB和Redis的网页数据采集处理方法,其特征在于,在步骤1-步骤6中,实时监控网页下载请求的生成速率;监控服务节点的健康状况:包括数据库存储容量、内存使用率、慢查询操作,以及内存消息队列的内存占用、消息积压程度等,当遭遇节点故障或服务性能下滑超过设定阈值时,及时以短信或邮件方式发送报警信息;监控下载请求的处理速率,发现请求积压严重或无法在计划时间内完成处理时,及时增加处理节点动态扩容。4.根据权利要求1所述的一种...

【专利技术属性】
技术研发人员:黄琦王伟琼蔡国雄
申请(专利权)人:杭州淘淘搜科技有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1