siaorg / sia-task

微服务任务调度框架
Apache License 2.0
1.82k stars 586 forks source link

关于我们

微服务任务调度平台

使用指南
开发指南
部署指南
Demo

背景

无论是互联网应用或者企业级应用,都充斥着大量的批处理任务。我们常常需要一些任务调度系统帮助我们解决问题。随着微服务化架构的逐步演进,单体架构逐渐演变为分布式、微服务架构。在此的背景下,很多原先的任务调度平台已经不能满足业务系统的需求。于是出现了一些基于分布式的任务调度平台。这些平台各有其特点,但各有不足之处,比如不支持任务编排、与业务高耦合、不支持跨平台等问题。不是非常符合公司的需求,因此我们开发了微服务任务调度平台(SIA-TASK)。

SIA是我们公司基础开发平台Simple is Awesome的简称,SIA-TASK(微服务任务调度平台)是其中的一项重要产品,SIA-TASK契合当前微服务架构模式,具有跨平台,可编排,高可用,无侵入,一致性,异步并行,动态扩展,实时监控等特点。

Introduction

A lot of batch tasks need to be processed by task scheduling systems. The single architectures are evolving towards distributed ones. We often need distributed task scheduling platforms to handle the needs of business systems. But such platforms may not support task scheduling across OS or are coupled with business features. We therefore decided to develop SIA-TASK.

SIA (Simple is Awesome) is our basic development platform. SIA-TASK is one of the key products of SIA and can work across OS. Its features include task scheduling, high availability, non-invasiveness, consistency, asynchronous concurrent processing, dynamic scale-out and real-time monitoring, etc.

项目简介

SIA-TASK是任务调度的一体式解决方案。对任务进行元数据采集,然后进行任务可视化编排,最终进行任务调度,并且对任务采取全流程监控,简单易用。对业务完全无侵入,通过简单灵活的配置即可生成符合预期的任务调度模型。

SIA-TASK借鉴微服务的设计思想,获取分布在每个任务执行器上的任务元数据,上传到任务注册中心。利用在线方式进行任务编排,可动态修改任务时钟,采用HTTP作为任务调度协议,统一使用JSON数据格式,由调度中心进行时钟解析,执行任务流程,进行任务通知。

Overview

SIA-TASK is an integrated non-invasive task scheduling solution. It collects task metadata and then visualizes and schedules the tasks. The scheduled tasks are monitored throughout the whole process. An ideal task scheduling model can be generated after simple and flexible configuration.

SIA-TASK collects task metadata on all executers and upload the data to the registry. The tasks are scheduled online using JSON with HTTP as the protocol. The scheduling center parses the clock, executes tasks and sends task notifications.

关键术语

Terms

微服务任务调度平台的特性

Features

微服务任务调度平台设计

SIA-TASK主要分为五个部分:

SIA-TASK includes the following components:

逻辑架构图

SIA-TASK的主要运行逻辑:

  1. 通过注解抓取任务执行器中的任务上报到任务注册中心
  2. 任务编排中心从任务注册中心获取数据进行编排保存入持久化存储
  3. 任务调度中心从持久化存储获取调度信息
  4. 任务调度中心按照调度逻辑访问任务执行器

SIA-TASK的主要运行逻辑:

  1. Fetch and upload annotated tasks to the registry
  2. The Config obtains data from the registry for scheduling and persistent storage
  3. The Scheduler acquires data from the persistent storage
  4. The Scheduler accesses the task scheduler following the scheduling logic

逻辑架构图

UI预览

首页提供多维度监控

Homepage

首页


调度监控提供对已提交的作业进行实时监控展示

Scheduling Monitor: real-time monitoring over submitted jobs

调度监控


任务管理:提供任务元数据的相关操作

Task Manager: task metadata operation

Task管理 Task管理


Job管理:提供作业相关操作

Job Manager: job operations

Job管理


日志管理

Log Manager

Job管理

开源地址

其他说明

关于编译代码

版本说明

版权说明

其他相关资料

SIA相关开源产品链接:

(待补充)