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

下载本文档

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

文档简介

自制分布式爬虫系统北京数人科技有限公司单机的All-In-One爬虫架构控制模块抓取模块抽取模块HA

Proxy各地代理URLHTML模板结果JSONXML递归URL有状态解析JS、地区代理、调速登陆利用JavaEE容器的线程池、共享状态做最坏的打算,祈祷最好的结果上云的Check

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

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

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

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

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

Step4集群化—服务发现、负载均衡HTTP接口ZooKeeper/etcd使用Marathon+Bamboo+HAProxy进行服务发现RabbitMQ接口通过监听MQ实现服务发现MongoDB如果不考虑自动扩展,使用既有的集群方案Reddis可以采用Codis方案Step5离线和在线服务混合部署离线服务吞吐很高,爬取模块队列经常破百万在线服务要求实时性-

MQ集群化-队列设置优先级Step6全局配置热更新问题:如何全局改变常用小参数的配置(变化少,使用频繁)如何全局改变体量较大的全局共享数据(体积大、变化较多)写代码的时候提前做好热读取参数的机制PUSH使用ZooKeeper/etcd来同步小参数PULL使用Reddis之类配置服务器来存储较大的共享数据Step8日志和监控使用ELK或者MongoDB来收集应用和stdout/Err的日志Elasticsearch+Logstash/Fluentd+Kibana日志要添加应用名称/Docker

ID/SessionID等等便于筛查的信息使用Graphite来监控吞吐量等性能指标使用ELK来进行应用层的被动监控和报警使用轮询health

check服务来监控关键组件的状态使用监控宝等等来进行端到端的黑盒监控使用Zabbix来进行物理层报警云上的操作系统—分布式操作系统LinuxMesos(DCOS)GoogleAWS资源管理KernelMesosBorg进程KernelDockerLXCEC2进程调度init.d,CronMarathon,chronosBorgCloudFormation进程间通信SocketXXXMQSQS存储EXT4Ceph、HDFSGFS,ColossusEFS,S3,EBS应用编程语言Docker、Spark、MR容器、MREMR等等服务发现N/ABambooBorgNameSystem数据存储N/ARedis、MongoBT、Spanner、MegastoreDynamo,EC,RDS分布式一致性N/AZK,etcdchubby日志Stdout,stderrELKBorglogserver,ecatcher,sawmillEMR配置ZK+RedisBorgCOnfig监控Zabbix等等Dapper,CPICloudwatch云计算时代的技术栈将完全变化硬件Dell

HP

CISCO操作系统Microsoft

Redhat软件Oracle

IBM应用IBM

SAP

ISV传统IT

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

Zendesk分布式OS

+

温馨提示

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

评论

0/150

提交评论