mirror of
https://github.com/crawlab-team/crawlab.git
synced 2026-01-22 17:31:03 +01:00
架构
Crawlab的架构跟Celery非常相似,但是加入了包括前端、爬虫、Flower在内的额外模块,以支持爬虫管理的功能。架构图如下。
节点 Node
节点其实就是Celery中的worker。一个节点运行时会连接到一个任务队列(例如Redis)来接收和运行任务。所有爬虫需要在运行时被部署到节点上,用户在部署前需要定义节点的IP地址和端口。
后台应用 Backend App
这是一个Flask应用,提供了必要的API来支持常规操作,例如CRUD、爬虫部署以及任务运行。每一个节点需要启动Flask应用来支持爬虫部署。运行python app.py来启动应用。
爬虫 Spider
爬虫源代码或配置规则储存在App上,需要被部署到各个worker节点中。
任务 Task
任务被触发并被节点执行。用户可以在任务详情页面中看到任务到状态、日志和抓取结果。
中间者 Broker
中间者跟Celery中定义的一样,作为运行异步任务的队列。
前端 Frontend
前端其实就是一个基于Vue-Element-Admin的单页应用。其中重用了很多Element-UI的控件来支持相应的展示。
Flower
一个Celery的插件,用于监控Celery节点。
