Cronicle项目安装与集群配置指南
项目概述
Cronicle是一个基于Node.js开发的分布式任务调度系统,支持跨服务器作业调度、负载均衡和自动故障转移。它提供了现代化的Web界面,可以替代传统的Cron任务调度器,特别适合需要分布式执行和集中管理的企业级任务调度场景。
系统要求
在开始安装前,请确保您的系统满足以下要求:
- 操作系统:必须是POSIX兼容系统(Linux/Unix/macOS)
- Node.js环境:需要安装LTS版本的Node.js(建议版本12.x或14.x)
- NPM包管理器:通常随Node.js一起安装
安装步骤
自动安装(推荐)
执行以下命令完成一键安装:
curl -s https://raw.githubusercontent.com/jhuckaby/Cronicle/master/bin/install.js | node
安装完成后,所有文件将存放在/opt/cronicle/目录下。
手动安装
如需手动安装,可执行以下步骤:
mkdir -p /opt/cronicle
cd /opt/cronicle
curl -L https://github.com/jhuckaby/Cronicle/archive/v1.0.0.tar.gz | tar zxvf - --strip-components 1
npm install
node bin/build.js dist
注意将v1.0.0替换为您需要的具体版本号。
初始配置
安装完成后,需要修改配置文件/opt/cronicle/conf/config.json。以下是关键配置项说明:
| 配置项 | 说明 | 示例值 |
|---|---|---|
base_app_url | 应用访问URL | http://cronicle.example.com:3012 |
email_from | 通知邮件发件地址 | noreply@example.com |
smtp_hostname | SMTP服务器地址 | smtp.example.com |
secret_key | 集群通信密钥 | 随机字符串 |
job_memory_max | 任务内存限制 | 1024 (MB) |
http_port | Web服务端口 | 3012 |
初始化与启动
执行初始化命令(仅在主服务器执行):
/opt/cronicle/bin/control.sh setup
启动服务:
/opt/cronicle/bin/control.sh start
默认管理员账号:
- 用户名:
admin - 密码:
admin(建议首次登录后立即修改)
部署架构选择
1. 单服务器部署
最简单的部署方式,适合小型环境。所有组件(调度器、执行器、Web界面)都运行在同一台服务器上。
2. 主从架构
- 主服务器:负责任务调度
- 工作服务器:只执行任务
特点:
- 主服务器使用本地存储
- 工作服务器无需运行初始化脚本
- 只需复制配置文件即可添加工作服务器
3. 多服务器集群
支持自动故障转移的高可用架构,需要共享存储支持:
存储选项:
- 共享文件系统(如NFS)
- Couchbase数据库
- Amazon S3存储桶
配置要点:
- 所有服务器配置必须一致
- 确保服务器时钟同步
- 主机名必须唯一且可解析
- 通过Web界面配置服务器组
负载均衡配置
当使用负载均衡器时需注意:
- 只将主服务器和备用主服务器加入负载均衡池
- 设置
web_direct_connect为true - 确保WebSocket连接能直达主服务器
运维注意事项
- 时间同步:所有服务器必须保持时钟同步
- 网络要求:
- UDP广播端口3014(用于服务发现)
- WebSocket连接需要保持畅通
- 主机名:
- 必须唯一
- 影响主服务器选举优先级(按字母排序)
- IP变更:需要重新加入集群
- 与Cron的区别:Cronicle的调度算法与传统Cron有所不同
最佳实践建议
-
安全建议:
- 及时修改默认管理员密码
- 限制Web界面访问IP
- 使用HTTPS加密通信
-
监控建议:
- 监控主服务器状态
- 设置关键任务失败告警
- 定期检查任务日志
-
性能优化:
- 根据任务负载调整工作服务器数量
- 合理设置任务内存限制
- 考虑使用SSD存储提升IO性能
通过以上配置,您可以构建一个稳定可靠的分布式任务调度系统,满足从简单到复杂的各种调度需求。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



