mirror of
https://github.com/crawlab-team/crawlab.git
synced 2026-01-25 17:42:25 +01:00
34 lines
1.4 KiB
Markdown
34 lines
1.4 KiB
Markdown
## 架构
|
||
|
||
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](https://github.com/PanJiaChen/vue-element-admin)的单页应用。其中重用了很多Element-UI的控件来支持相应的展示。
|
||
|
||
### Flower
|
||
|
||
一个Celery的插件,用于监控Celery节点。
|