• Crawlab多节点部署流程


    Why,为什么需要爬虫管理平台?

    以下摘自官方文档:

      Crawlab主要解决的是大量爬虫管理困难的问题,例如需要监控上百个网站的参杂scrapyselenium的项目不容易做到同时管理,而且命令行管理的成本非常高,还容易出错。

    Crawlab支持任何语言和任何框架,配合任务调度、任务监控,很容易做到对成规模的爬虫项目进行有效监控管理。

      项目自 2019 年 3 月份上线以来受到爬虫爱好者们和开发者们的好评,超过一半的使用者表示已经在用 Crawlab 作为公司的爬虫管理平台。

    经过近数月的迭代,陆续上线了 定时任务、数据分析、可配置爬虫、SDK、消息通知、Scrapy 支持、Git 同步等功能,

    将Crawlab打造得更加实用,更加全面,能够真正帮助用户解决爬虫管理困难的问题。

      需要用到的环境:mongodb、redis、docker。这里就不一一介绍了。由于这里说的是多节点部署,mongodb一定要是3.6版本或者3.6版本以下(这里是大坑)要不然会因为认证机制连接不上mongodb。当然你用docker起mongo和redis映射出来也是一样的。生产环境上我们不希望仅仅是简单部署,我们可以在多台服务器上分别部署Crawlab然后连接公共的MongoDB及Redis。这时候就需要让Mongo及Redis独立出来,避免耦合启动。

    部署流程:

    一、拉取镜像

    docker pull tikazyq/crawlab:latest

    二、编写docker-compose.yml文件

    自己touch一个或者从git上clone一份这里是我的配置。

    master节点

    version: '3.3'
    services:
    master:
    image: tikazyq/crawlab:latest
    container_name: master
    environment:
    # CRAWLAB_API_ADDRESS: "https://<your_api_ip>:<your_api_port>" # backend API address 后端 API 地址. 适用于 https 或者源码部署
    CRAWLAB_SERVER_MASTER: "Y" # whether to be master node 是否为主节点,主节点为 Y,工作节点为 N
    CRAWLAB_MONGO_HOST: "" # MongoDB host address MongoDB 的地址,在 docker compose 网络中,直接引用服务名称
    CRAWLAB_MONGO_PORT: "27017" # MongoDB port MongoDB 的端口
    CRAWLAB_MONGO_DB: "dbname" # MongoDB database MongoDB 的数据库
    CRAWLAB_MONGO_USERNAME: "dbusername" # MongoDB username MongoDB 的用户名
    CRAWLAB_MONGO_PASSWORD: "dbpwd" # MongoDB password MongoDB 的密码
    CRAWLAB_MONGO_AUTHSOURCE: "admin" # MongoDB auth source MongoDB 的验证源
    CRAWLAB_REDIS_ADDRESS: "" # Redis host address Redis 的地址,在 docker compose 网络中,直接引用服务名称
    CRAWLAB_REDIS_PORT: "6379" # Redis port Redis 的端口
    CRAWLAB_REDIS_DATABASE: "1" # Redis database Redis 的数据库
    CRAWLAB_REDIS_PASSWORD: "dbpwd" # Redis password Redis 的密码
    CRAWLAB_LOG_LEVEL: "info" # log level 日志级别. 默认为 info
    ports:
    - "8080:8080" # frontend port mapping 前端端口映射
    depends_on:
    - mongo
    - redis
    mongo:
    image: mongo:latest
    restart: always

    redis:
    image: redis:latest
    restart: always

    worker节点

    version: '3.3'
    services:
      worker:
        image: tikazyq/crawlab:latest
        container_name: worker
        environment:
          # CRAWLAB_API_ADDRESS: "https://<your_api_ip>:<your_api_port>"  # backend API address 后端 API 地址. 适用于 https 或者源码部署
          CRAWLAB_SERVER_MASTER: "N"  # whether to be master node 是否为主节点,主节点为 Y,工作节点为 N
          CRAWLAB_MONGO_HOST: ""  # MongoDB host address MongoDB 的地址,在 docker compose 网络中,直接引用服务名称
          CRAWLAB_MONGO_PORT: "27017"  # MongoDB port MongoDB 的端口
          CRAWLAB_MONGO_DB: "dbname"  # MongoDB database MongoDB 的数据库
          CRAWLAB_MONGO_USERNAME: "dbusername"  # MongoDB username MongoDB 的用户名
          CRAWLAB_MONGO_PASSWORD: "dbpwd"  # MongoDB password MongoDB 的密码
          CRAWLAB_MONGO_AUTHSOURCE: "admin"  # MongoDB auth source MongoDB 的验证源
          CRAWLAB_REDIS_ADDRESS: ""  # Redis host address Redis 的地址,在 docker compose 网络中,直接引用服务名称
          CRAWLAB_REDIS_PORT: "6379"  # Redis port Redis 的端口
          CRAWLAB_REDIS_DATABASE: "1"  # Redis database Redis 的数据库
          CRAWLAB_REDIS_PASSWORD: "dbpwd"  # Redis password Redis 的密码
          CRAWLAB_LOG_LEVEL: "info"  # log level 日志级别. 默认为 info
        ports:
          - "8080:8080" # frontend port mapping 前端端口映射
        depends_on:
          - mongo
          - redis
      mongo:
        image: mongo:latest
        restart: always
    
      redis:
        image: redis:latest
        restart: always

    三、docker-compose up启动

    master端和worker端启动:

    docker-compose up -d #-d就是后台启动

    启动成功图:

    这时可以打开localhost:8080查看节点信息。默认账号密码都是admin:

    然后就可以部署你的爬虫了。看起来很简单当初踩了好多坑。

  • 相关阅读:
    C# 获取类似java gettime() 的时间格式
    LUbuntu电脑棒安装指南
    Visual Studio Gallery
    SQL SERVER 分页存储过程
    asp.mvc获取checkbox、radio、select的值
    C#面向对象的一些笔记
    Javascript预解析、作用域、作用域链
    解决ajax请求cors跨域问题
    Asp.Net操作WebServices
    2019年科技趋势前10位
  • 原文地址:https://www.cnblogs.com/Pynu/p/15250596.html
Copyright © 2020-2023  润新知