100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 大规模分布式爬虫系统中Kafka和rabbitMQ消息中间件的技术实践分享

大规模分布式爬虫系统中Kafka和rabbitMQ消息中间件的技术实践分享

时间:2020-01-31 06:08:48

相关推荐

大规模分布式爬虫系统中Kafka和rabbitMQ消息中间件的技术实践分享

一、背景描述

目前后端数据引擎系统中 使用了24个节点的Elasticsearch 集群,存储每天采集1.7亿条上下的数据量,具体的网页原始数据存储在 Cassandra 集群中。一个月下来抓取的数据量超过2T,同时要保证每天450台爬虫机器同时抓取数据稳定运行,这么大的数据采集量当然需要一个可靠的爬虫系统。在这个爬虫系统中抓取任务和数据处理分发的稳定中间件必不可少。在多种MQ消息中间件里面,我们经过反复的试验和论证,最后选择了Kafka和rabbitMQ两种消息中间件,在分布式爬虫系统作为不同的用途使用,rabbitMQ做爬虫抓取压力分载,Kafka并行对一条数据多种状态处理。

备注:将来还会用一篇文章来阐述为什么我们要放弃使用MongoDB 转向 Cassandra。

二、rabbitMQ使用场景

rabbitMQ在系统与分布式爬虫配合,首先从redis种子仓库里将有效的URL地址提取出来,将URL种子地址和爬虫采集模板匹配组装成rabbitMQ消息,通过消息发送端给rabbitMQ消息中间件,450个爬虫worker节点作为rabbitMQ消息接收端去不同的网站对数据进行采集数据。

三、Kafka使用场景

Kafka在系统扮演者并行数据处理的工作,例如:数据清洗、数据标记、情感分析、数据删除 等多个数据处理过程,中间有同步处理的数据,也是异步的处理数据流程,最终再将处理完成的数据组装起来,将摘要检索字段存储在Elasticsearch中,原始网页存储在Cassandra。

使用 rabbitMQ 是为了能让爬虫机器快速的扩展,因为rabbitMQ中有queue消息队列的属性,可以将压力自动分发到各个爬虫采集端。使用 Kafka 主要是因为性能卓越,一台廉价的服务器都可以支持百万级并发处理,特别是用于并行对一条数据同时多种处理。因此,我们采用了2种类型的消息中间件来构建我们的系统。

开源项目地址:

目前我们已经将上述技术实践开源,请关注我们发布的开源项目。

开源免费舆情监测网络监控系统: 思通舆情 是一款开源免费的舆情系统,支持本地化部署。支持对海量的舆情数据进行交叉分析和深度挖掘,为用户提供全面的舆情数据,专业的舆情分析,快速的舆情处理等服务,提升企业品牌价值和风控能力。#舆情系统#舆情监测#网络舆情#开源舆情#免费舆情#舆情分析/stonedtx/yuqing

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。