cronsun分布式任务调度系统
cronsun 是一个分布式任务系统,单个节点和linux机器上的 crontab 近似。支持界面管理机器上的任务,支持任务失败邮件提醒,安装简单,使用方便, 可作为替换crontab来使用
cronsun是可以解决多台linux机器上crontab任务管理不方便的问题,同时提供任务高可用的支持(当某个节点死机的时候可以自动调度到正常的节点执行)
项目地址:https://github.com/shunfei/cronsun
程序特性:
- 方便对多台服务器上面的定时任务进行集中式管理
- 任务调度时间粒度支持到秒级别
- 任务失败自动重试
- 任务可靠性保障(从N个节点里面挑一个可用节点来执行任务)
- 简洁易用的管理后台,支持多语言
- 任务日志查看
- 任务失败邮件告警(也支持自定义http告警接口)
- 用户验证与授权
部署与使用:
环境准备(本例子中组件都部署在一台机器上):
| 操作系统 | cronsun版本 | ip地址 |
| centos7 | V0.3.5 | 192.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后启动,在节点中即可看到,如图:



