业务需求
爬虫引擎为基础的推送系统
提供
用户需求
功能需求
产品需求
前端页面设计
用户交互设计
后端爬虫引擎设计
数据分析设计
数据推送设计
数据输入
任务配置和管理
任务
任务要爬取的 URL
任务相关规则的描述
规则引擎模块处理规则: 任务相关的规则可能比较复杂并且有关联,例如 A 网站爬取到 B 网站,B 网站爬取到 C 网站,每一个网站都需要有对应的处理规则。
调度引擎
采集引擎
采集工作: 解析相应的页面信息.
访问方式
采集算法
任务回流调度引擎
辅助任务管理模块
数据清洗和存储
缓存队列: 收集一批数据后批量将数据写入数据库中.
存储引擎
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P88iGxhi-1679233104210)(https://assets.b3logfile.com/siyuan/1658627274984/assets/image-20230319210644-zuyxt7f.png)]
扩展性
我们的任务将会在 Worker 中长时间存在,因此,我们会遇到许多新的问题:
服务可用性 分布式系统容错问题
Master
Worker
分布式系统协调组件 etcd
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nasbhVOB-1679233104210)(https://assets.b3logfile.com/siyuan/1658627274984/assets/image-20230319211403-0guhuxa.png)]
Mater
提供用户操作接口
任务调度器
借助etcd实现选主,实现可用性
集群只有一个Leder,其他Master收到的请求会转发到Leader中处理
etcd
Worker
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8jtxj71z-1679233104211)(https://assets.b3logfile.com/siyuan/1658627274984/assets/image-20230319211429-agja9xx.png)]
「此文章为3月Day8学习笔记,内容来源于极客时间《Go分布式爬虫实战》,强烈推荐该课程!/推荐该课程」