From 4607c5ae2ed537b276b8d89d618b7071188891c7 Mon Sep 17 00:00:00 2001 From: Marvin Zhang Date: Mon, 29 Jul 2019 13:22:02 +0800 Subject: [PATCH] updated README --- README-zh.md | 36 +++++++++++++++++++++--------------- README.md | 4 ++-- frontend/.env.production | 2 +- frontend/src/api/request.js | 2 +- 4 files changed, 25 insertions(+), 19 deletions(-) diff --git a/README-zh.md b/README-zh.md index cff9424c..301b0de0 100644 --- a/README-zh.md +++ b/README-zh.md @@ -1,21 +1,21 @@ # Crawlab ![](http://114.67.75.98:8081/buildStatus/icon?job=crawlab%2Fdevelop) -![](https://img.shields.io/badge/版本-v0.2.3-blue.svg) +![](https://img.shields.io/badge/版本-v0.3.0-blue.svg) 中文 | [English](https://github.com/tikazyq/crawlab/blob/master/README.md) -基于Celery的爬虫分布式爬虫管理平台,支持多种编程语言以及多种爬虫框架. +基于Golang的分布式爬虫管理平台,支持Python、NodeJS、Go、Java、PHP等多种编程语言以及多种爬虫框架。 [查看演示 Demo](http://114.67.75.98:8080) | [文档](https://tikazyq.github.io/crawlab-docs) ## 要求 -- Python 3.6+ +- Go 1.12+ - Node.js 8.12+ -- MongoDB +- MongoDB 3.6+ - Redis ## 安装 @@ -53,17 +53,27 @@ ## 架构 -Crawlab的架构跟Celery非常相似,但是加入了包括前端、爬虫、Flower在内的额外模块,以支持爬虫管理的功能。架构图如下。 +Crawlab的架构包括了一个主节点(Master Node)和多个工作节点(Worker Node),以及负责通信和数据储存的Redis和MongoDB数据库。 -![](https://crawlab.oss-cn-hangzhou.aliyuncs.com/gitbook/architecture.png) +![](https://crawlab.oss-cn-hangzhou.aliyuncs.com/v0.3.0/architecture.png) -### 节点 Node +前端应用向主节点请求数据,主节点通过MongoDB和Redis来执行任务派发调度以及部署,工作节点收到任务之后,开始执行爬虫任务,并将任务结果储存到MongoDB。架构相对于`v0.3.0`之前的Celery版本有所精简,去除了不必要的节点监控模块Flower,节点监控主要由Redis完成。 -节点其实就是Celery中的`worker`。一个节点运行时会连接到一个任务队列(例如`Redis`)来接收和运行任务。所有爬虫需要在运行时被部署到节点上,用户在部署前需要定义节点的IP地址和端口。 +### 主节点 Master Node -### 后台应用 Backend App +主节点是整个Crawlab架构的核心,属于Crawlab的中控系统。 -这是一个Flask应用,提供了必要的API来支持常规操作,例如CRUD、爬虫部署以及任务运行。每一个节点需要启动Flask应用来支持爬虫部署。运行`python app.py`来启动应用。 +主节点主要负责以下功能: +1. 爬虫任务调度 +2. 工作节点管理和通信 +3. 爬虫部署 +4. 前端以及API服务 + +主节点负责与前端应用进行通信,并通过Redis将爬虫任务派发给工作节点。同时,主节点会同步(部署)爬虫给工作节点,通过Redis和MongoDB的GridFS。 + +### 工作节点 + +工作节点的主要功能是执行爬虫任务和储存抓取数据与日志,并且通过Redis的PubSub跟主节点通信。 ### 爬虫 Spider @@ -73,13 +83,9 @@ Crawlab的架构跟Celery非常相似,但是加入了包括前端、爬虫、F 任务被触发并被节点执行。用户可以在任务详情页面中看到任务到状态、日志和抓取结果。 -### 中间者 Broker - -中间者跟Celery中定义的一样,作为运行异步任务的队列。 - ### 前端 Frontend -前端其实就是一个基于[Vue-Element-Admin](https://github.com/PanJiaChen/vue-element-admin)的单页应用。其中重用了很多Element-UI的控件来支持相应的展示。 +前端是一个基于[Vue-Element-Admin](https://github.com/PanJiaChen/vue-element-admin)的单页应用。其中重用了很多Element-UI的控件来支持相应的展示。 ### Flower diff --git a/README.md b/README.md index 5a1f6555..441a3ead 100644 --- a/README.md +++ b/README.md @@ -13,9 +13,9 @@ Celery-based web crawler admin platform for managing distributed web spiders reg [Demo](http://114.67.75.98:8080) | [Documentation](https://tikazyq.github.io/crawlab-docs) ## Pre-requisite -- Python 3.6+ +- Go 1.12+ - Node.js 8.12+ -- MongoDB +- MongoDB 3.6+ - Redis ## Installation diff --git a/frontend/.env.production b/frontend/.env.production index ccefa580..09f11100 100644 --- a/frontend/.env.production +++ b/frontend/.env.production @@ -1,2 +1,2 @@ NODE_ENV='production' -VUE_APP_BASE_URL='http://localhost:8000/api' +VUE_APP_BASE_URL='http://localhost:8000' diff --git a/frontend/src/api/request.js b/frontend/src/api/request.js index e2fe1910..38734c46 100644 --- a/frontend/src/api/request.js +++ b/frontend/src/api/request.js @@ -1,7 +1,7 @@ import axios from 'axios' import router from '../router' -let baseUrl = process.env.VUE_APP_BASE_URL ? process.env.VUE_APP_BASE_URL : 'http://localhost:8000/api' +let baseUrl = process.env.VUE_APP_BASE_URL ? process.env.VUE_APP_BASE_URL : 'http://localhost:8000' const request = (method, path, params, data) => { return new Promise((resolve, reject) => {