一、背景描述

目前后端数据引擎系统中 使用了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种类型的消息中间件来构建我们的系统。

开源项目地址:

目前我们已经将上述技术实践开源,请关注我们发布的开源项目。
开源免费舆情监测网络监控系统: 思通舆情 是一款开源免费的舆情系统,支持本地化部署。支持对海量的舆情数据进行交叉分析和深度挖掘,为用户提供全面的舆情数据,专业的舆情分析,快速的舆情处理等服务,提升企业品牌价值和风控能力。#舆情系统#舆情监测#网络舆情#开源舆情#免费舆情#舆情分析https://gitee.com/stonedtx/yuqing

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

  1. 基于SpringBoot和Vue的分布式爬虫系统(JavaWeb)

    前言 本期案例分享,学长给大家上点干货,手把手带你开发一个分布式爬虫系统.通过这个项目,你将学习到下面几点: 架构设计.如果设计一个通用的爬虫系统?一个系统支持爬取所有的网站. 分布式开发经验.分布式 ...

  2. python分布式爬虫系统_如何构建一个分布式爬虫:理论篇

    前言 本系列文章计划分三个章节进行讲述,分别是理论篇.基础篇和实战篇.理论篇主要为构建分布式爬虫而储备的理论知识,基础篇会基于理论篇的知识写一个简易的分布式爬虫,实战篇则会以微博为例,教大家做一个比较 ...

  3. python分布式爬虫系统_三种分布式爬虫系统的架构方式

    分布式爬虫系统广泛应用于大型爬虫项目中,力求以最高的效率完成任务,这也是分布式爬虫系统的意义所在. 分布式系统的核心在于通信,介绍三种分布式爬虫系统的架构思路,都是围绕通信开始,也就是说有多少分布式系 ...

  4. 手把手教你搭建一个基于Java的分布式爬虫系统

    http://blog.51cto.com/xpleaf/2093952 1 概述 在不用爬虫框架的情况,经过多方学习,尝试实现了一个分布式爬虫系统,并且可以将数据保存到不同地方,类似MySQL.HB ...

  5. 分布式爬虫系统的设计与实现(SourceForge.net数据爬取)

    目录 本科生毕业论文(设计)中文摘要 I 本科生毕业论文(设计)英文摘要 II 目录 I 图目录 III 表目录 IV 第一章 引言 1 1.1 研究背景 1 1.1.1 SourceForge.ne ...

  6. 如何设计一个复杂的分布式爬虫系统?

    一个复杂的分布式爬虫系统由很多的模块组成,每个模块是一个独立的服务(SOA架构),所有的服务都注册到Zookeeper来统一管理和便于线上扩展.模块之间通过thrift(或是protobuf,或是so ...

  7. 良好的分布式cahce系统中,一致性hash算法需要满足什么?

    良好的分布式cahce系统中,一致性hash算法需要满足什么?你知道吗?让我们来一起学习下吧. 良好的分布式cahce系统中,一致性hash算法应该满足哪些方面 平衡性(Balance).单调性(Mo ...

  8. 计算机网络技术在农业中的应用,计算机网络技术在农业节水灌溉系统中的运用——评《计算机网络技术与应用实践》...

    计算机网络技术在农业节水灌溉系统中的运用--评<计算机网络技术与应用实践> 计算机网络技术日臻成熟,在农业领域的应用也更加普及,尤其是节水灌溉系统与计算机网络技术的整合,大大提升了农业节水 ...

  9. 分布式消息系统:Kafka

    Kafka是分布式发布-订阅消息系统.它最初由LinkedIn公司开发,之后成为Apache项目的一部分.Kafka是一个分布式的,可划分的,冗余备份的持久性的日志服务.它主要用于处理活跃的流式数据. ...

  10. 大规模分布式跟踪系统的理论

    概述 当代的互联网的服务,通常都是用复杂的.大规模分布式集群来实现的.互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发.可能使用不同的编程语言来实现.有可能布在了几千台服务器 ...

最新文章

  1. IIS和.net framework 4.0的安装顺序导致的问题
  2. 实验7-3-7 字符转换 (15分)
  3. Ubuntu 18.04 LTS环境下 MNN 的编译与使用
  4. html5 coverflow,使用FancyCoverFlow实现3D无限循环切换视图
  5. 内网安装nginx+keepalived环境配置及简单使用
  6. python导入mongodb_python实现mongodb的备份与导入
  7. git.exe 启动 慢_户外慢生活节来了!南京固城湖水慢城开启春日度假模式
  8. linux内核disabled,Linux内核关闭IPv6协议的方式
  9. Java Swing 如何关闭当前窗口?
  10. 蓝桥杯2015年第六届C/C++省赛B组第七题-牌型种数
  11. flutter去掉输入框最大字数显示
  12. python第五章课后答案5.8_Python语言程序设计(美-梁勇)第5章习题解答
  13. Python数据分析之数据聚合与分组运算
  14. 算法概念:大O表示法/小o表示法/Ω/Θ
  15. 最新CTR预测服务的GPU优化实践
  16. 千万同时在线直播聊天室架构演进
  17. 《后端从入门到熟悉-序言》
  18. 你可能不知道你已经被运营商劫持了
  19. 五面拿下阿里飞猪offer,java电子书百度云
  20. BLDC无刷直流电机和PMSM永磁同步电机 基于stm32F1的有传感器和无传感驱动 直流无刷电机有传感器和无传感驱动程序

热门文章

  1. 机智云开源框架二次开发之换皮肤,几乎不用改代码
  2. 上采样(upsampling)(图像内插)——最邻近内插法、双线性内插法与双三次内插法
  3. 三对角矩阵(特殊矩阵)
  4. 网线的分类,以及作用
  5. 生活碎碎念,春节在家的50种消遣方法—因为新型冠状病毒而无法出门的我
  6. 如何用python做无限弹窗_Python无限弹窗,开机启动,打包为exe程序
  7. 根据IP获取国家代码
  8. 【黑苹果EFI下载】三星笔记本NP500R4K(5200U+HD5500)+Macos10.14版本
  9. GPS测速仪,一个APP就可以搞定
  10. TMS320F280049C 串行通信接口Serial Communications Interface (SCI)之RS485通信(多摩川编码器)