Chronus:微服务生态中的轻量级分布式调度平台
chronus Chronus是360数科技术团队基于阿里开源项目TBSchedule重写的分布式调度。 项目地址: https://gitcode.com/gh_mirrors/ch/chronus
项目介绍
Chronus是由360金融技术团队基于阿里开源项目TBSchedule进行重写的分布式调度平台。经过内部5个里程碑版本的迭代,Chronus已经成为一个成熟、稳定的调度系统,广泛应用于生产环境中。为了回馈开源社区,360金融决定将内部生产版本开源,确保开源版本与内部版本保持一致,持续投入维护,保证其质量和稳定性。得益于TBSchedule的良好设计思想,Chronus在大量Job的生产验证中表现出色,稳定性高达99.999%。
项目技术分析
Chronus采用了Master-Worker模式,实现了分布式集群调度。这种模式允许平台水平扩展,任务自动故障转移,有效解决了大量Job调度的问题。此外,Chronus支持Dubbo和HTTP协议,无缝集成到微服务生态中,成为轻量级的分布式调度平台。
在技术架构上,Chronus通过调度组物理隔离和基于TAG的Job物理隔离执行,确保了重要业务不受影响。细粒度的权限控制也符合内控安全需求,外部依赖插件化设计则支持多种注册方式和存储方式,增强了平台的灵活性和可扩展性。
项目及技术应用场景
Chronus适用于需要高并发、高可用、高稳定性的分布式调度场景。特别是在微服务架构中,Chronus能够帮助企业实现任务的自动化调度,提升系统的整体性能和稳定性。无论是金融行业的交易处理,还是电商平台的订单处理,Chronus都能提供可靠的调度支持。
项目特点
- 平台零开发:业务系统只需引入SDK,实现接口即可,无需额外开发。
- 分布式集群调度:Master-Worker模式,水平扩展,任务自动故障转移。
- 调度组物理隔离:基于TAG实现Job的物理隔离执行,确保重要业务不受影响。
- 细粒度权限控制:符合内控安全需求,保障系统安全。
- 外部依赖插件化:支持多种注册方式和存储方式,灵活扩展。
- 界面友好:提供丰富的管理功能,操作简便。
快速开始
Maven依赖
<dependency>
<groupId>com.qihoo.finance.chronus</groupId>
<artifactId>chronus</artifactId>
<version>1.0.0</version>
</dependency>
定义Spring Bean处理器
@Service("selectExecuteBean")
public class SelectExecuteBean implements ChronusSdkSingleJob<Integer> {
private static final Logger logger = LogManager.getLogger(SelectExecuteBean.class);
@Override
public List<Integer> selectTasks(String taskParameter, List<TaskItemDefineDomain> list, int eachFetchDataNum) throws Exception {
List<Integer> result = new ArrayList<>();
//查询数据集合
return result;
}
@Override
public boolean execute(Integer domain, String taskParameter) throws Exception {
// 处理集合中的每一项
return true;
}
}
文档与截图
Chronus提供了详细的文档和友好的管理界面,帮助用户快速上手。以下是部分截图:
下载与联系
谁在使用Chronus
请在 谁在使用Chronus #18 提供您的信息,共同推动Chronus的发展。
许可证
Chronus采用Apache 2.0 license,由360金融开源。
chronus Chronus是360数科技术团队基于阿里开源项目TBSchedule重写的分布式调度。 项目地址: https://gitcode.com/gh_mirrors/ch/chronus