cronsun分布式任务调度系统

cronsun 是一个分布式任务系统,单个节点和linux机器上的 crontab 近似。支持界面管理机器上的任务,支持任务失败邮件提醒,安装简单,使用方便, 可作为替换crontab来使用

cronsun是可以解决多台linux机器上crontab任务管理不方便的问题,同时提供任务高可用的支持(当某个节点死机的时候可以自动调度到正常的节点执行)

项目地址:https://github.com/shunfei/cronsun

程序特性:

  • 方便对多台服务器上面的定时任务进行集中式管理
  • 任务调度时间粒度支持到秒级别
  • 任务失败自动重试
  • 任务可靠性保障(从N个节点里面挑一个可用节点来执行任务)
  • 简洁易用的管理后台,支持多语言
  • 任务日志查看
  • 任务失败邮件告警(也支持自定义http告警接口)
  • 用户验证与授权

部署与使用:

环境准备(本例子中组件都部署在一台机器上):

操作系统cronsun版本ip地址
centos7V0.3.5192.168.49.224

    1、首先安装mongodb,通过国内源下载rpm包后安装,如下:

    wget https://mirrors.tuna.tsinghua.edu.cn/mongodb/yum/el7-4.2/RPMS/mongodb-org-4.2.3-1.el7.x86_64.rpm
    wget https://mirrors.tuna.tsinghua.edu.cn/mongodb/yum/el7-4.2/RPMS/mongodb-org-mongos-4.2.3-1.el7.x86_64.rpm
    wget https://mirrors.tuna.tsinghua.edu.cn/mongodb/yum/el7-4.2/RPMS/mongodb-org-server-4.2.3-1.el7.x86_64.rpm
    wget https://mirrors.tuna.tsinghua.edu.cn/mongodb/yum/el7-4.2/RPMS/mongodb-org-shell-4.2.3-1.el7.x86_64.rpm
    wget https://mirrors.tuna.tsinghua.edu.cn/mongodb/yum/el7-4.2/RPMS/mongodb-org-tools-4.2.3-1.el7.x86_64.rpm
    rpm -ivh mongodb-org-*    #安装

    2、启动mongodb,并设置开机自启动,端口默认为27017,如图:

    systemctl enable mongod.service --now

    3、安装etcd3,包文件下载:https://github.com/etcd-io/etcd/releases

    tar xf etcd-v3.5.0-linux-amd64
    cd etcd-v3.5.0-linux-amd64
    nohup ./etcd --listen-client-urls="http://0.0.0.0:2379" --advertise-client-urls="http://0.0.0.0:2379" --listen-peer-urls="http://0.0.0.0:2380" >> etcd.log 2>&1 &  #以后台方式启动
    • 2379端口是应用连接使用,2380端口是etcd集群之间通信使用

    4、安装cronsun,将包下载好后,上传到服务器上,解压后可以看到几个文件如下:

    • cronweb:服务端文件
    • cronnode:客户端文件,需要放到本机以及远程机器上的用来管理定时任务
    • conf:配置文件
    vim conf/db.json    #修改mongodb的ip地址和端口vim 
    vim conf/etcd.json  #修改etcd的ip地址和端口

    5、启动cronweb,端口默认是7079,如图:

    6、通过地址http://192.168.49.224:7079/ui/#/job来请求页面,并输入账号密码登陆,如图:

    默认账号密码:admin@admin.com/admin

    7、启动cronnode,启动后才能看到节点信息,如下:

    9、再次登陆web页面,可以看到已经出现了节点,并显示节点ip,如图:

    其他节点也部署cronnode,需要把cronnode和conf文件夹都复制到新的节点上,然后修改conf中的db.json和etcd.json中的mongodb和etcd地址,最后按照上面的方法启动即可,比如我们新增了一个192.168.49.83节点,安装cronnode后启动,在节点中即可看到,如图:

    标签