微服务实例-构建分布式爬虫系统-数人科技课件_第1页
微服务实例-构建分布式爬虫系统-数人科技课件_第2页
微服务实例-构建分布式爬虫系统-数人科技课件_第3页
微服务实例-构建分布式爬虫系统-数人科技课件_第4页
微服务实例-构建分布式爬虫系统-数人科技课件_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

自制分布式爬虫系统单机的All-In-One爬虫架构控制模块抓取模块抽取模块HA

Proxy各地代理URLHTML模板结果JSONXML递归URL有状态解析JS、地区代理、调速登陆利用JavaEE容器的线程池、共享状态分布式和微服务是Silver

Bullet么?分布式和微服务的优点特定模块单独开发和测试(YES)容易对特定模块进行横向扩展

(YES)整体可靠性更高(?)服务(以及代码)可以重用(YES)离线和在线类型服务可以混合部署

(Great)Step

1.拆服务,建集群控制服务抓取服务抽取服务结果聚合服务HA

Proxy获取结果控制服务抓取服务抽取服务结果聚合服务最终结果中间结果尽量利用Docker本身多实例,避免复杂的多线程编程因为任务并行运行,所以需要保存中间结果,最后进行归并Step

2.接口异步化控制服务抓取服务抽取服务结果聚合服务HA

Proxy获取结果控制服务抓取服务抽取服务结果聚合服务URLCookieHTMLRabbitMQ:异步、服务发现、中间结果存储JSONStep

3.

无状态、无状态、无状态控制服务抓取服务抽取服务结果聚合服务HA

Proxy获取结果控制服务抓取服务抽取服务结果聚合服务URLCookieSessionIDHTMLSessionIDJSONSessionIDPages(JSON)SessionIDSessionIDSessionID问题:异步抓取的时候链接去重2.某次同步请求是否抓全Reddis

ClusterSessionIDStep5离线和在线服务混合部署离线服务吞吐很高,爬取模块队列经常破百万在线服务要求实时性-

MQ集群化-队列设置优先级Step6全局配置热更新问题:如何全局改变常用小参数的配置(变化少,使用频繁)如何全局改变体量较大的全局共享数据(体积大、变化较多)写代码的时候提前做好热读取参数的机制PUSH使用ZooKeeper/etcd来同步小参数PULL使用Reddis之类配置服务器来存储较大的共享数据Step

7.摩尔定律脑补:

每个组件都可能失效

每个步骤都可能中断状态不一致咋办、消息会不会丢、消息堆积会不会造成OOM、会不会僵尸进程和数据…

…设置任务超时当取结果的时候,如果超时就返回当前的部分结果设置定时Cleaner定时梳理所有任务,如果全局超时就认为任务已经完成设置自动抛弃机制超过一定限度就抛弃旧的信息做最坏的打算,祈祷最好的结果上云的Check

List服务单元功能越单一越好计算模块要做到无状态(不依赖本地I/O)任何服务都不能有单点,必须做集群可能的话,模块间接口尽量异步设计时做最坏打算——每个模块都可能失效,而且无法及时报警分布式的配置管理,RollingUpdate/Restart各个层面的集中式监控和日志方案……真的是一个操作系统诶

以及各种各样的PaaS服务,让大家能够轻松上云世界潮流,浩浩荡荡硬件Dell

HP

CISCO操作系统Microsoft

Redhat软件Oracle

IBM应用IBM

SAP

ISV传统IT

时代渠道资源型线下集成商公有云私有云SaaSSalesforce

Zendesk分布式OS

+存储PaaS各种宝、云Cep

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论