Skip to content

Sonic 产品介绍

1. 平台概述

Sonic 是基于最新调度模式研发的轻量级分布式任务调度平台,支持定时任务调度、广播任务调度、任务流程编排、分段任务拆分、分布式调度跑批等功能。使用者只需要关注任务流程编排以及子任务的实现。

结合 Sonic 配套管理端、调度端,即可快速便携的完成调度任务执行、任务执行进度实时监控、执行结果查看、运行错误排查等操作。

1.1 平台架构

调度平台主要分为管理端(Sonic 控制台)、调度端(Sonic 调度器)、执行端三大部分。平台架构图如下所示:

  1. 管理端即 Web 前端,用户通过管理端即可完成任务启动、停止等操作,同时提供任务执行进度监控,运行时日志查看、错误堆栈查看、运行时大屏等功能。
  2. 调度端是平台的核心模块,负责具体任务的调度、任务派发,同时还负责与管理端进行交互,为管理端提供展示数据等。
  3. 执行端即具体的业务系统,任务由调度端下发给执行端,执行端负责执行具体的业务逻辑。

2. 平台特点

2.1 支持多租户、多环境、多应用

引入多租户概念,多个租户共享调度服务,最大化利用调度资源。同时租户间数据相互隔离,互不影响。

支持多个环境,一个版本从 DEV 环境,到 SIT 环境,再到 FAT 全部打通,只需选择不同的环境发布即可,免除不同环境间拷贝所带来的风险。

不同的业务系统或模块即代表不同的应用。每个应用只能隶属于一个环境下,不同环境间的应用相互隔离。

2.2 支持多数据中心

执行端支持多数据中心部署架构,同时基于Sonic路由管理,可实现数据中心双活、多活、灾备等模式。

Sonic 路由管理主要包括指定数据中心、优先数据中心两项路由策略,同时支持进行全应用、指定应用配置:

  • 指定数据中心:作业只能被配置的指定数据中心下的应用执行;
  • 优先数据中心:作业优先派发给配置的指定数据中心下的应用执行;

2.3 Step、Step组、Job

Step 即具体的一段业务逻辑。

将经常重复调用或同一类 Step 按照一定的逻辑顺序编排组成 Step 组,可以在多个任务中被引用。

将若干个 Step 和 Step组按照业务逻辑编排成一个流程,称为 Job。

2.4 多应用联合任务

某些场景下(例如,核心日终批处理),一个 Job 流程需要先后调起不同应用的 Step,甚至某一个 Job 流程中需要调起另一个 Job。多应用联合任务是将若干个不同的应用所定义的 Step、Step组、Job 三者联合编排成一个新的 Job,按照编排顺序,依次进行调度,从而实现多应用任务调度要求,具备全行级任务调度能力。多应用联合任务编排如下图所示:

2.5 支持多种触发方式

平台支持定时、手动、SDK 三种任务调起方式:

  1. 定时器调起,通过配置 CRON 表达式,平台可在指定时间自动调起相关任务。
  2. 手动触发,用户通过管理端页面点击执行,手动调起指定任务。
  3. SDK 方式触发,业务开发人员,通过编写代码的方式向调度平台发起任务调起请求。

2.6 超时通知机制

通过提前设定 Job 的预计执行时间,平台在进行调度过程中,若发现该 Job 执行的时间超出了预订执行时间,平台会自动触发超时通知,具体通知类型根据实际情况而决定(例如,邮件通知、短信通知、告警平台等)。

2.7 大数据量分段执行

对于需要处理大量数据的任务,才用分段执行。首先将数据按照一定大小划分为多个分段,每个执行端只负责若干个分段,从而提高任务运行效率,缩短任务执行时间。

2.8 任务运行信息实时监控

平台具备任务进度实时监控、执行端线程堆栈查看、执行端实时日志查看、执行失败错误信息汇报等功能。

2.9 多种任务派发策略

平台提供轮询、随机、余弦相似度等多种任务派发策略。

2.10 高可用保证

调度端和执行端均具备分布式集群部署能力,既能升任务执行效率,又能保证调度系统的高可用。

3. 功能展示

3.1 任务开发

任务开发需要配合 IDEA 插件进行,Step 定义如下图所示:

Job 定义如下图所示:

3.2 管理端首页

管理端首页主要涉及系统的部分统计信息,例如,任务执行数量统计、可用调度端数量和资源占用情况统计、可用执行端和对应资源占用情况、关注任务执行耗时统计以及即将执行的定时任务信息等。首页如下图所示:

3.3 运行信息监控

  1. Job 运行时可以通过管理端实时查看执行进度,同时还包含执行端日志查看、运行时堆栈查看、出错时错误信息查看等功能。Job运行进度如下所示:

  1. 任务运行时,通过管理端可直接查看任务,运行时堆栈如下图所示:

  1. 任务执行时,通过管理端实时查看执行端日志信息,执行端日志信息如下图所示:

  1. 任务运行过程中若出现错误或运行失败的情况,可以通过管理端查看错误信息。

3.4 运行时大屏

平台提供运行时大屏展示功能,实时监控 Job 执行进度、资源占用情况等信息。