Skip to content

BCTSP 大数据任务调度平台

一、系统概述

项目说明
Artifactcn.webank.cnc.tsp:zctsp-parent
GroupIdcn.webank.cnc.tsp
Parent POMcn.webank.cnc.sdk:zcnc-sdk-starter-parent:3.35.0-SNAPSHOT
版本pace_replacement_version-SNAPSHOT
Java版本Java 8 (source/target 1.8)
编码UTF-8
打包方式多模块聚合POM
SCMgit@git.webank.io:cnc/zctsp.git
CIJenkins (http://jenkins.webank.oa.com:8080/jenkins)
Maven仓库http://maven.weoa.com/nexus/ (yak)
核心框架Spring Boot + Spring MVC + MyBatis + Quartz
系统定位大数据批处理任务调度与执行平台(Big Data Task Scheduling Platform),服务于微众银行多个业务线的数据加工、ETL、数据质量监控等场景

技术栈总览

  • Web框架: Spring Boot + Embedded Tomcat + Spring MVC
  • 调度引擎: Quartz + 自研分布式调度分发引擎
  • 持久层: MyBatis + MyBatis-Spring + 多数据源(MySQL/TDSQL)
  • 消息中间件: RMB(Webank消息总线)+ WeService(WeRPC/WeMQ)
  • 大数据组件: Hive 3.1.3 + Hadoop 3.3.4 + HBase + Elasticsearch 6.8.13
  • 计算引擎: Apache Linkis 1.6.1-wds + BDP-TSS
  • 图数据库: Neo4j 4.0.1 (血缘分析)
  • 文件传输: FPS (File Propagation Service) + Exchangis 0.7.12
  • 日志: Log4j2 + SLF4J
  • 分布式锁: zcnc-sdk-starter-distributed-lock
  • 限流: zcnc-sdk-starter-flowcontrol
  • 安全: Spring Security + SSO + UM + ESAPI + 数据脱敏
  • 国际化: zcnc-sdk-starter-i18n
  • 微信企业号: weixin-java-cp 2.6.0 (移动端推送)
  • 邮件: EWS Java API 2.0 (Exchange Web Services)
  • Excel报表: Apache POI 4.1.1 + JXLS 2.14.0
  • 图表: JFreeChart 1.5.0
  • 中文分词: Jieba Analysis 1.0.0

二、模块结构(10个模块)

模块依赖关系图

zctsp-parent (pom)
  |-- ctsp-zinfrastructure  (基础设施/DAO生成)
  |-- ctsp-common-sdk       (公共SDK, 供外部系统使用)
  |-- ctsp-zcommon          (公共模块, 依赖 zinfrastructure)
  |-- ctsp-udf              (Hive UDF函数)
  |-- ctsp-rmb-agent        (RMB消息代理, 独立轻量模块)
  |-- bctsp-schedule        (调度服务, 依赖 zcommon/udf/zinfrastructure)
  |-- bctsp-executor        (执行服务, 依赖 zcommon/udf/zinfrastructure)
  |-- bctsp-app             (Web控制台WAR, 依赖 zcommon/zinfrastructure)
  |-- ctsp-analysis         (分析服务WAR, 独立运行)
  |-- ctsp-mobile           (移动端报表, 独立运行)

2.1 bctsp-app (WAR -- Web管理控制台)

属性
ArtifactIdbctsp-app
Packagingwar
名称ctsp we2000作业调度web
主类cn.webank.cnc.bdp.ZappApplication
Java文件数~532个
包根路径cn.webank.cnc.bdp.* + cn.webank.cnc.zctsp.*

核心职责:

  • 提供Web管理界面(JSP/前端页面)
  • 任务配置管理(CRUD)
  • 任务运行监控与运维操作
  • 图形化依赖关系展示
  • REST API接口供前端调用
  • 报表导出(Excel/PDF)
  • 批量任务配置上传
  • 角色菜单权限管理

关键依赖: Spring MVC, MyBatis, Quartz, Hadoop/Hive, CLES-Client(ES), ESB-SDK, iTextPDF, POI, JXLS, nimbus-jose-jwt

2.2 bctsp-schedule (JAR -- 调度服务)

属性
ArtifactIdbctsp-schedule
Packagingjar
名称ctsp we2000作业调度服务
主类cn.webank.cnc.zctsp.ScheduleApplication
包根路径cn.webank.cnc.zctsp.*

核心职责:

  • Quartz定时调度驱动
  • 任务实例生成与分发
  • 依赖关系计算(上下游依赖 + 自依赖)
  • RMB消息接收与处理
  • 任务状态流转控制(WAIT -> WAIT_BASE -> WAIT_TIME -> READY -> RUNNING)
  • 50+种任务模块的实例化(创建组件运行实例)
  • 数据质量检查规则引擎
  • 文件信号检测
  • 跨DCN依赖调度
  • Spring Batch任务管理

关键依赖: Quartz, RMB, Linkis, BDP-TSS, FlowControl, Hutool

2.3 bctsp-executor (JAR -- 执行服务)

属性
ArtifactIdbctsp-executor
Packagingjar
名称ctsp we2000作业执行服务
主类cn.webank.cnc.zctsp.ExecutorApplication
包根路径cn.webank.cnc.zctsp.*

核心职责:

  • 实际执行ETL作业
  • Hive SQL提交(通过Linkis/BDP-TSS)
  • Shell脚本执行
  • 数据质量检查执行
  • 列监控检查执行
  • HBase BulkLoad执行
  • TDSQL数据同步(Sqoop/Calc方式)
  • Elasticsearch数据写入
  • FPS文件传输
  • 数据脱敏执行
  • HQL语法检查与Explain分析
  • 血缘解析(Hive SQL Lineage)

关键依赖: Exchangis-Client, FPS-Client, Hadoop, Hive-Exec, Linkis, BDP-TSS, Distributed-Lock

2.4 ctsp-analysis (WAR -- 分析服务)

属性
ArtifactIdctsp-analysis
Packagingwar
名称zctsp作业分析
主类cn.webank.cnc.zctsp.AnalysisApplication

核心职责:

  • Neo4j图数据库血缘分析
  • 任务影响分析(上游/下游链路追踪)
  • SQL血缘解析(Hive SQL Lineage解析)
  • 邮件报告生成与推送(Exchange Web Services)
  • 任务异常检测与分析
  • 任务周期检查(环依赖检测)
  • 3小时报告(Tsp3hReport)
  • 发布单管理(ReleaseForm/PublishFile)
  • 数据质量规则统计
  • 缓存信息管理
  • 子系统表单管理

关键依赖: Neo4j JDBC/Bolt/HTTP, Jieba分词, EWS-Java-API, POI, JFreeChart, BouncyCastle

2.5 ctsp-mobile (JAR -- 移动端报表)

属性
ArtifactIdctsp-mobile
Packagingjar
名称zctsp移动端报表
主类cn.webank.cnc.bdp.mobile.CtspMobilApplication

核心职责:

  • 移动端任务运行报表
  • 半小时报告(HalfHour Report)
  • 任务失败率统计
  • 任务依赖关系图展示
  • 微信企业号消息推送(weixin-java-cp)
  • HR系统对接(员工信息查询)
  • UM权限上传
  • 多数据源切换

关键依赖: weixin-java-cp, Freemarker, Spring Boot Tomcat

2.6 ctsp-rmb-agent (JAR -- RMB代理)

属性
ArtifactIdctsp-rmb-agent
Packagingjar

核心职责:

  • 轻量级RMB消息发送工具包
  • 封装RMB消息序列化/反序列化
  • 独立于主应用,供外部系统直接引用
  • 提供JSON映射和序列号生成

关键类: SendRmbTools, JsonMapper, SeqNoUtil, JsonSerializeUtil, DateUtil

关键依赖: weservice-werpc, weservice-wemq, rmb-api

2.7 ctsp-udf (JAR -- Hive UDF)

属性
ArtifactIdctsp-udf
名称zctsp任务调度平台udf函数

核心职责:

  • 自定义Hive UDF函数
  • 供Hive SQL在执行时直接调用
  • 作为依赖包打入executor模块

关键依赖: commons-lang3, Jackson, Log4j2

2.8 ctsp-zcommon (JAR -- 公共模块)

属性
ArtifactIdctsp-zcommon
名称zctsp任务调度平台公共服务

核心职责:

  • 全系统共享的模型定义(Model/DTO/Entity)
  • 枚举定义(任务类型、模块类型、规则类型等)
  • 常量定义(BdpBatchConstants等)
  • 自定义注解(AutoIncrement自增主键、LogContext等)
  • 异常体系(BusinessException等)
  • BDP SDK客户端配置
  • RMB公共工具
  • 变量展开工具(VariableExpander)

包结构: cn.webank.cnc.zctsp.annotation, config, constant, enums, exp, log, model, utils

2.9 ctsp-zinfrastructure (JAR -- 基础设施/DAO)

属性
ArtifactIdctsp-zinfrastructure
Packagingjar

核心职责:

  • MyBatis代码自动生成(通过zcnc-sdk-starter-mybatisplugin)
  • 从ERM/SQL文件自动生成DAO、DTO、Mapper XML
  • JPA注解支持
  • 自动生成的Mapper基类

代码生成配置:

  • SQL源文件: ctsp.sql
  • 目标包: cn.webank.cnc.zctsp.infrastructure
  • JPA开关: Y

2.10 ctsp-common-sdk (JAR -- 公共SDK)

属性
ArtifactIdctsp-common-sdk
Packagingjar

核心职责:

  • 供外部系统集成的轻量SDK
  • 任务信息生成工具(TaskGenerateUtil)
  • 数据质量检查规则信息(GenerateDataCheckRuleInfo)
  • HQL检查信息(GenerateHqlCheckInfo)
  • 公共枚举定义
  • MD5/日期/字符串工具类
  • 业务异常定义

三、包架构

3.1 bctsp-app 包结构

cn.webank.cnc.bdp
  |-- ZappApplication.java              (Spring Boot启动类)
  |-- aop/                              (AOP切面: LogUtilAspect)
  |-- config/
  |    |-- configuration/               (配置类)
  |    |    |-- ComConfiguration         (通用配置)
  |    |    |-- EmbeddedTomcatConfiguration (内嵌Tomcat)
  |    |    |-- TspDataSourceConfiguration (数据源)
  |    |    |-- TspPubDataSourceConfiguration (公共数据源)
  |    |    |-- WebConfiguration         (Web MVC配置)
  |    |    |-- FilterConfiguration      (过滤器)
  |    |    |-- EsbSdkConfig            (ESB SDK配置)
  |    |    |-- ItsmConfig              (ITSM配置)
  |    |    |-- PubTdsqlProperty         (TDSQL属性)
  |    |-- LifeCycleListener             (生命周期监听)
  |    |-- ZappConfig                    (应用配置)
  |    |-- TspFullDcnInfoCfg             (全DCN信息配置)
  |-- constant/                          (常量)
  |-- generatemybatis/                   (自动生成的MyBatis DAO/DTO)
  |-- task/
  |    |-- analysis/                     (分析相关)
  |    |-- common/                       (公共常量/工具)
  |    |    |-- exception/               (异常定义)
  |    |    |-- util/                    (工具类)
  |    |    |-- json/                    (JSON序列化)
  |    |-- controller/                   (控制器)
  |    |-- dao/                          (DAO层)
  |    |    |-- mapper/                  (MyBatis Mapper接口)
  |    |    |-- constant/                (DAO常量)
  |    |-- model/                        (数据模型)
  |    |-- enums/                        (枚举)
  |    |-- service/                      (服务层)
  |    |    |-- view/                    (视图服务/Controller)
  |    |-- util/                         (工具类)

3.2 bctsp-schedule 包结构

cn.webank.cnc.zctsp
  |-- ScheduleApplication.java          (Spring Boot启动类)
  |-- aop/                              (AOP切面)
  |-- config/
  |    |-- configuration/
  |    |    |-- QuarzConfiguration       (Quartz配置)
  |    |    |-- ScheduleConfiguration    (调度配置)
  |    |    |-- TspDataSourceConfiguration
  |    |-- BdpBatchConfig               (批处理配置)
  |    |-- SystemVariable / ExtSystemVariable (系统变量)
  |-- constant/                          (常量/枚举)
  |-- dao/
  |    |-- face/                         (DAO接口)
  |    |-- impl/                         (DAO实现)
  |    |-- mapper/                       (MyBatis Mapper)
  |-- model/                             (数据模型)
  |-- rmb/
  |    |-- face/                         (RMB接口)
  |    |-- handler/                      (RMB处理器)
  |    |-- param/                        (RMB参数)
  |    |-- testPlaform/                  (测试平台RMB)
  |-- service/
  |    |-- schedule/                     (Quartz定时任务)
  |    |    |-- TaskSchedule.java        (核心调度引擎)
  |    |    |-- TaskManageSchedule       (任务管理)
  |    |    |-- TaskMoniterSchedule      (任务监控)
  |    |    |-- TaskReportSchedule       (报表调度)
  |    |    |-- TaskRunHstSchedule       (运行历史)
  |    |    |-- TaskCrossLineDependSchedule (跨线依赖)
  |    |    |-- TaskHiveTmpTableSchedule (临时表调度)
  |    |    |-- TaskOneTime              (一次性任务)
  |    |    |-- TaskTemplateExpansionSchedule (模板扩展)
  |    |    |-- TaskServiceIdleRecordSchedule (服务空闲记录)
  |    |    |-- TaskServiceStatusIntervalSchedule (服务状态间隔)
  |    |-- impl/                         (RMB消息处理实现, TspServiceImplXXXX)
  |    |-- rule/
  |    |    |-- base/                    (规则接口)
  |    |    |-- handler/                 (规则处理器)
  |    |-- api/                          (RMB API服务)
  |    |-- dataclean/                    (数据清理)
  |    |-- expansion/                    (批处理扩展)
  |    |-- springbatch/                  (Spring Batch集成)
  |    |-- taskExec/                     (任务执行器)
  |    |-- DateSwitch/                   (日期切换)
  |    |-- AbstractModuleService.java    (模块服务抽象基类)
  |    |-- ITaskModuleService.java       (模块服务接口)
  |    |-- TaskRunService.java           (任务运行服务)
  |    |-- TaskRunModuleService.java     (任务运行模块服务)
  |    |-- TaskPlanService.java          (任务计划服务)
  |    |-- TaskTemplateService.java      (任务模板服务)
  |    |-- 50+个TaskXxxModuleService     (各类型模块服务)
  |-- util/                              (工具类)

3.3 bctsp-executor 包结构

cn.webank.cnc.zctsp
  |-- ExecutorApplication.java          (Spring Boot启动类)
  |-- aop/                              (AOP切面)
  |-- config/
  |    |-- ExchangisConfig              (Exchangis配置)
  |    |-- QualitisConfig               (Qualitis配置)
  |-- constant/
  |-- dao/ (同schedule类似结构)
  |-- dto/                               (数据传输对象)
  |-- model/                             (数据模型)
  |-- service/
  |    |-- rule/                         (数据质量规则引擎)
  |    |-- springbatch/                  (Spring Batch)
  |    |-- param/                        (执行参数)
  |    |-- quartz/                       (Quartz任务)
  |    |-- AbstractModuleService.java    (模块抽象基类)
  |    |-- TaskSchedule.java             (执行调度)
  |    |-- TaskRunService.java           (任务运行)
  |    |-- QualitisService.java          (Qualitis数据质量平台)
  |    |-- CdaService.java               (CDA服务)
  |    |-- EtlGrayCtlService.java        (ETL灰度控制)
  |    |-- TaskHQLExplainService.java    (HQL Explain分析)
  |    |-- TaskHiveTmpTableService.java  (Hive临时表管理)
  |    |-- 50+个TaskXxxModuleService     (各类型执行模块)
  |-- util/                              (工具类)

3.4 ctsp-analysis 包结构

cn.webank.cnc.zctsp
  |-- AnalysisApplication.java          (Spring Boot启动类)
  |-- common/
  |    |-- cache/                        (缓存)
  |    |-- constant/                     (常量: 血缘来源/任务类型/信号类型等)
  |    |-- exception/                    (异常)
  |-- config/                            (配置)
  |-- dao/
  |    |-- mapper/
  |    |    |-- mysql/                   (MySQL Mapper: 14个)
  |    |    |-- neo4j/                   (Neo4j Mapper: 12个)
  |-- model/
  |    |-- lineAge/                      (血缘模型, ~30个类)
  |    |-- pace/                         (PACE发布模型)
  |    |-- task/                         (任务分析模型)
  |-- protocol/                          (协议/响应对象)
  |-- service/
  |    |-- api/                          (RMB API: ServiceCode2001-3006)
  |    |-- function/                     (业务功能)
  |    |    |-- LineAgeAnalyzeService    (血缘分析核心)
  |    |    |-- MailService              (邮件服务)
  |    |    |-- TaskCycleCheckService    (环检测)
  |    |    |-- TaskEffectResultService  (任务影响分析)
  |    |    |-- TaskExceptionService     (任务异常分析)
  |    |    |-- CapabilityCheckService   (能力检查)
  |    |    |-- IMSService               (IMS告警)
  |    |-- impl/                         (Neo4j实现)
  |    |-- view/                         (视图服务)
  |-- util/                              (工具类: 血缘解析/邮件/图表等)

四、核心类详解

4.1 ScheduleApplication (调度服务启动类)

  • 路径: bctsp-schedule/.../ScheduleApplication.java
  • 类型: Spring Boot Application
  • 注解: @SpringBootApplication, @EnableAspectJAutoProxy, @EnableTransactionManagement(ASPECTJ), @EnableAsync
  • ComponentScan: cn.webank.cnc.zctsp.*(排除 cn.webank.cnc.bdp.sdk.*
  • 本地调试: 支持 cncLocalRun JVM参数加载本地配置
  • 配置加载: {confPath}/bctsp-schedule.properties, bctsp-schedule-env.properties, rmb-client.properties

4.2 ExecutorApplication (执行服务启动类)

  • 路径: bctsp-executor/.../ExecutorApplication.java
  • 类型: Spring Boot Application
  • 注解: 与ScheduleApplication相同
  • ComponentScan: cn.webank.cnc.zctsp.*
  • 额外配置: bctsp-executor.properties, bctsp-executor-env.properties

4.3 ZappApplication (Web控制台启动类)

  • 路径: bctsp-app/.../ZappApplication.java
  • 类型: Spring Boot Application
  • 注解: 与上面类似
  • ComponentScan: cn.webank.cnc.bdp.* + cn.webank.cnc.zctsp.*
  • 注意: 扫描两个包前缀,因为app模块同时包含 bdp 和 zctsp 包的代码

4.4 TaskSchedule (核心调度引擎)

  • 路径: bctsp-schedule/.../service/schedule/TaskSchedule.java
  • 类型: @Service
  • 核心方法: taskRunSchedule() -- 由Quartz定时触发

调度流程详解:

  1. 停批检查: 检查 threadPoolManager.isBatchServiceStopped()
  2. 分布式锁: 通过 dao.updateTaskLockByValueAndTime() 获取调度锁(单节点执行),超时1分钟自动释放
  3. 加载任务实例: getRunTaskList() 分页读取近30天的运行中任务实例(每页2000条),按 taskSeq 范围分页
  4. 加载配置: getAllTaskCfgList() 获取所有任务配置,getAllTaskReferList() 获取依赖关系
  5. 依赖计算:
    • 构建任务间依赖图 (mapTaskIdRef, mapTaskSeqRef)
    • 计算自依赖(同taskId不同batch_date的前后依赖)
    • 处理多参数任务的聚合状态
  6. 状态流转: 对每个任务实例判断:
    • TASK_WAIT -> 等待上游 + 等待时间
    • TASK_WAIT_BASE -> 仅等待上游依赖
    • TASK_WAIT_TIME -> 仅等待调度时间
    • TASK_READY -> 可以执行(依赖完成 + 时间到达)
  7. 二次确认: 可选的依赖任务再次检查(isDoubleCheckTaskReferSwitch
  8. 乐观锁: dao.updateTaskRunLock(entity) 锁定任务由本实例调度
  9. 释放锁: 调度完成后释放分布式锁

排序策略: 按优先级降序 + taskSeq升序排序,高优先级任务优先调度

4.5 TaskRunService (任务运行服务)

  • 路径: bctsp-schedule/.../service/TaskRunService.java
  • 类型: @Service("taskRunService")
  • 核心方法: addMsgTaskToRun() -- 响应RMB消息创建任务实例

流程:

  1. 判断任务类别(分钟级/天级)
  2. 分钟级任务: 根据执行时间窗口和间隔生成多个实例
  3. 天级任务: 处理单参数/多参数
  4. 多参数任务: 按 param_group_ids 展开参数组合
  5. 写入 task_run 表(dao.copyTaskToRun()
  6. 处理 need_ack(需确认)标记
  7. 记录任务日志
  8. 调用 taskRunModuleService.expandTaskModule() 扩展模块实例

4.6 AbstractModuleService (模块服务抽象基类)

  • 路径: bctsp-schedule(bctsp-executor)/.../service/AbstractModuleService.java
  • 职责: 所有模块服务的基类
  • 关键设计:
    • 持有 TaskBasicModuleInstance(模块实例)
    • 持有 IBdpDao(数据访问)
    • 提供 record(msg) 方法记录日志
    • 内部类 ModuleFileWriter 继承 FileWriter,在写入文件的同时缓存日志内容,最终写入DB

4.7 ITaskModuleService (模块服务接口)

  • 路径: bctsp-schedule(bctsp-executor)/.../service/ITaskModuleService.java
  • 方法: createTaskInstance(moduleID, taskId, taskSeq, taskBasicModuleInstance)
  • 注解: @ITaskModuleServiceProductRule(moduleType=...) -- 通过自定义注解标识模块类型

4.8 TaskHive2ESModuleService (Hive到ES同步模块)

  • 路径: bctsp-schedule/.../service/TaskHive2ESModuleService.java
  • 注解: @ITaskModuleServiceProductRule(moduleType = BdpBatchConstants.MODULE_TYPE_HIVE2ES)
  • 职责: 创建Hive到Elasticsearch同步的任务实例
  • 流程:
    1. 获取 TaskHive2ESModuleCfg 配置
    2. 检查是否已有实例
    3. 不存在则创建新实例
    4. 计算配置签名(signature)用于变更检测

4.9 TaskColumnMonitorModuleService (列监控模块)

  • 路径: bctsp-schedule/.../service/TaskColumnMonitorModuleService.java
  • 注解: @ITaskModuleServiceProductRule(moduleType=BdpBatchConstants.MODULE_TYPE_COLUMN_MONITOR)
  • 职责: 创建列级数据质量监控任务实例
  • 流程:
    1. 获取 TaskColumnMoniModuleCfg(列监控配置)
    2. 获取 TaskColumnMoniRuleCfg(监控规则)
    3. 创建 TaskColumnMoniModuleInstance(监控实例)
    4. 支持多种检查规则类型

4.10 TaskHiveCalculateModuleService (Hive计算模块)

  • 路径: bctsp-schedule/.../service/TaskHiveCalculateModuleService.java
  • 注解: @ITaskModuleServiceProductRule(moduleType=BdpBatchConstants.MODULE_TYPE_HIVE_CALCULATE)
  • 职责: Hive SQL计算任务
  • 配置模型: TaskHiveCalculateModuleCfg, TaskHiveCalculateModuleInstance

4.11 TaskShellModuleService (Shell脚本模块)

  • 路径: bctsp-schedule/.../service/TaskShellModuleService.java
  • 注解: @ITaskModuleServiceProductRule(moduleType=BdpBatchConstants.MODULE_TYPE_SHELL)
  • 职责: Shell脚本执行任务
  • 配置模型: TaskShellModuleCfg, TaskShellModuleInstance

五、数据模型(107个Mapper XML)

5.1 Mapper XML 统计

模块Mapper XML数
bctsp-app~93个 (mappers/ + pubmapper/ + mybatis-mappers/)
bctsp-schedule~8个 (dao/mapper/)
bctsp-executor~5个 (dao/mapper/ + dao/pubmapper/)
ctsp-analysis~26个 (14 MySQL + 12 Neo4j)
合计~107+

5.2 核心数据表(通过Mapper命名推断)

任务配置相关:

表/实体说明
TaskCfg / TaskRun任务配置表 / 任务运行实例表
TaskRefer / TaskCfgRefer / TaskCfgReferRelate任务依赖关系
TaskParam / TaskParamGroup任务参数 / 参数组
TaskGroup任务分组
TaskBasicModuleCfg / TaskBasicModuleInstance基础模块配置 / 实例
TaskSubject任务主题
TaskTag / TaskTagCfg任务标签
TaskLock任务分布式锁
TaskProduct任务产品
TaskVariable任务变量
TaskShell / TaskShellModuleShell脚本配置

运行监控相关:

表/实体说明
TaskRunBak任务运行备份
TaskLog / TaskModuleLog任务日志 / 模块日志
TaskRmbLogRMB消息日志
TaskRmbResendRMB重发记录
TaskBatchSchedule批次调度
TaskScheduleActiveQueue / TaskScheduleQueueCtrl调度活跃队列 / 队列控制
TaskServiceStatus服务状态
TaskServiceReport服务报表
TaskWarnAdjust告警调整
TaskBypassVerify旁路验证
TaskRecChangeOpLog记录变更操作日志
TaskDependency任务依赖图
TaskGraph / TaskGraphElement图形/图形元素

模块配置相关:

表/实体说明
TaskModuleColumnMoniCfg / TaskTspColumnMonitor列监控配置
TaskTspColumnMoniRule / TaskTspColumnMonitorRuleList列监控规则
TaskModuleCrossLineDependCfg跨线依赖配置
TaskModuleDataReturnPullCfg数据回拉配置
TaskModuleFeatureProcessCfg特征处理配置
TaskModuleFpsToHiveCfgFPS到Hive配置
TaskModuleHiveCalBranchCfgHive计算分支配置
TaskModuleHiveFilesToFpsCfgHive文件到FPS配置
TaskModuleHiveMaskCfgHive脱敏配置
TaskModuleHiveToJsonCfgHive转JSON配置
TaskModuleRmsProcessCfgRMS处理配置
TaskModuleSplitTable分表配置
TaskModuleTdSqlSalveMoniCfgTDSQL从库监控配置
TaskModuleTspShellTSP Shell配置
TaskModuleZipperArchiveCfg拉链归档配置
TaskModuleZipperRecoverCfg拉链恢复配置
TaskModuleFileExportRmbNoticeCfg文件导出RMB通知配置
TaskColumnTransRowModuleCfg列转行配置
TaskRowTransColumnModuleCfg行转列配置
TaskIncreaseCompareModuleCfg增量比较配置
TaskJson2TableModuleCfgJSON转表配置
TaskDataClean数据清理配置
TaskMergeTable合并表配置
TaskRowDynamicColumnCfg行动态转列配置
TaskETLModuleCfgETL模块配置
TaskHive2FpsModuleCfgHive到FPS配置
TaskHive2TdSqlSqoodModuleCfgHive到TDSQL Sqoop配置
TaskHive2hbaseBulkloadCfgHive到HBase BulkLoad配置
TaskHbase2HiveSnapshotCfgHBase到Hive快照配置

模板与计划:

表/实体说明
TaskTemplate / TaskTemplateGroup任务模板 / 模板组
BdpTaskPlan / BdpTaskPlanDetail / BdpTaskPlanRun / BdpTaskPlanRunDetail任务计划 / 计划明细 / 计划运行
TaskDateSwitchService / TaskDateSwitchServiceOpLog日期切换服务 / 操作日志

其他:

表/实体说明
BatchTagCfg批次标签配置
CriticalPathCfg关键路径配置
DataExtract / DataExtractTaskCfg数据抽取
EtlGrayCtlETL灰度控制
SystemRecover / TaskBackupTable系统恢复 / 备份表
BdpTaskJobServerInfoJobServer信息
BdpVariable系统变量
LogSatatics日志统计
TaskFastRerunBatch快速重跑批次
TaskEditItsmRecordITSM变更记录
TmAdpResourceADP资源
TaskExceptionCheck异常检查
Organization组织机构
TspSpringBatchStepStatus / TspSpringBatchSystemSpring Batch步骤状态/系统表

5.3 Neo4j图模型(ctsp-analysis)

节点类型:

  • SimpleTask -- 简单任务节点
  • StaticTask -- 静态任务节点
  • DBTable -- 数据库表节点
  • ReleaseForm -- 发布单节点
  • PublishFile -- 发布文件节点
  • SubSystemForm -- 子系统表单节点
  • BdpTask -- BDP任务节点
  • BdpDBTable -- BDP数据库表节点

关系类型:

  • StaticTaskRelation -- 静态任务关系
  • TasksRelationship -- 任务间关系
  • TaskLineAge / LineAges -- 血缘关系
  • ReleaseSubSystemRelation -- 发布-子系统关系
  • SubSystemPublishFileRelation -- 子系统-文件关系
  • PublishFileSimpleTaskRelation -- 文件-任务关系

六、任务调度机制(Quartz + 自定义分发引擎)

6.1 整体架构

                    +------------------+
                    |  Quartz Scheduler |
                    | (定时触发)        |
                    +--------+---------+
                             |
                    +--------v---------+
                    |  TaskSchedule     |
                    | (调度引擎核心)     |
                    | - 依赖计算        |
                    | - 状态流转        |
                    | - 分布式锁        |
                    +--------+---------+
                             |
              +--------------+--------------+
              |                             |
    +---------v---------+        +----------v--------+
    | bctsp-schedule    |        | bctsp-executor    |
    | (任务分发/实例化)  |        | (任务执行)         |
    +---------+---------+        +----------+--------+
              |                             |
    +---------v---------+        +----------v--------+
    | RMB消息总线       |        | Linkis/BDP-TSS    |
    | (消息驱动)        |        | (提交Hive/Shell)   |
    +-------------------+        +-------------------+

6.2 调度流程

  1. Quartz触发: TaskSchedule.taskRunSchedule() 由Quartz按cron表达式定时触发
  2. 获取分布式锁: 通过数据库行锁实现单节点调度
  3. 加载任务实例: 分页查询近30天的运行任务(状态非终态)
  4. 加载依赖关系: 读取所有任务配置和依赖关系,构建内存依赖图
  5. 计算状态流转:
    • 遍历所有任务实例
    • 检查上游依赖是否全部完成(SUCCESS/SKIP)
    • 检查调度时间是否到达
    • 检查自依赖(前一批次是否完成)
    • 处理多参数任务的聚合状态
    • 设置合适的状态:TASK_WAIT / TASK_WAIT_BASE / TASK_WAIT_TIME / TASK_READY
  6. 二次依赖确认: 可选的开关控制
  7. 乐观锁抢占: updateTaskRunLock 防止多实例重复调度
  8. 释放锁: 调度完成释放分布式锁

6.3 其他Quartz定时任务

定时类职责
TaskSchedule核心调度引擎
TaskManageSchedule任务管理(清理、状态维护)
TaskMoniterSchedule任务监控(超时检测、告警)
TaskReportSchedule报表生成调度
TaskRunHstSchedule运行历史归档
TaskCrossLineDependSchedule跨业务线依赖调度
TaskHiveTmpTableScheduleHive临时表清理
TaskOneTime一次性任务处理
TaskTemplateExpansionSchedule模板扩展调度
TaskServiceIdleRecordSchedule服务空闲记录
TaskServiceStatusIntervalSchedule服务状态间隔检测
TaskRefreshSchedule (executor)执行器任务刷新
TspBussinessJob (executor)业务Job

6.4 RMB消息驱动的任务创建

Schedule模块通过RMB接收外部消息,按ServiceCode路由到不同的处理实现:

ServiceCode范围处理类说明
0001-0006TspServiceImpl000x任务基础操作(创建/查询/修改/删除)
1003-1004TspServiceImpl100x计划相关操作
2001-2005TspServiceImpl200x任务运行控制(触发/重跑/暂停/恢复)
2103-2109TspServiceImpl210x扩展运行操作
3001-3003TspServiceImpl300x批量操作
3100TspServiceImpl3100旁路验证
4001-4002TspServiceImpl400x日期切换
5001TspServiceImpl5001模板操作
6001-6002TspServiceImpl600x其他操作
9999TspServiceImpl9999系统级操作

七、ETL执行器(50+ 模块类型)

7.1 完整模块类型列表

通过分析 bctsp-schedule/service/bctsp-executor/service/ 目录下的 Task*ModuleService 类,系统支持以下模块类型:

模块类型类名说明
Hive SQL计算TaskHiveCalculateModuleServiceHive SQL执行(核心ETL)
Hive分支计算TaskHiveCalBranchModuleServiceHive分支SQL执行
Hive CheckTaskHiveCheckModuleServiceHive数据检查
Hive2ESTaskHive2ESModuleServiceHive到Elasticsearch同步
Hive2FpsTaskHive2FpsModuleServiceHive到FPS文件推送
Hive2TdsqlCalcTaskHive2TdsqlCalcModuleServiceHive到TDSQL(Calc方式)
Hive2TdsqlSqoopTaskHive2TdsqlSqoopModuleServiceHive到TDSQL(Sqoop方式)
Hive2HbaseBulkloadTaskHive2HbaseBulkloadModuleServiceHive到HBase BulkLoad
HiveFiles2FpsTaskHiveFiles2FpsModuleServiceHive文件到FPS
HiveMaskTaskHiveMaskModuleServiceHive数据脱敏
HiveToJsonTaskHiveToJsonModuleServiceHive到JSON转换
Hbase2HiveTaskHbase2HiveSnapshotModuleServiceHBase到Hive快照
Es2HiveTaskEs2HiveModuleServiceES到Hive同步
FpsToHiveTaskFpsToHiveLoadModuleServiceFPS到Hive加载
ETLTaskETLModuleService通用ETL模块
ShellTaskShellModuleServiceShell脚本执行
TspShellTaskTspShellModuleServiceTSP Shell执行
SignalTaskSignalModuleService信号检测模块
FileSignalTaskFileSignalModuleService文件信号检测
SpringBatchTaskSpringBatchJobModuleServiceSpring Batch任务
DataCheckTaskDataCheckModuleService数据质量检查
DataCheckNewValueTaskDataCheckNewValueModuleService新值检查
DataCheckVolatilityTaskDataCheckVolatilityModuleService波动率检查
ColumnMonitorTaskColumnMonitorModuleService列级监控
HQLCheckTaskHQLCheckModuleServiceHQL语法检查
ParaCheckTaskParaCheckModuleService参数检查
CrossLineDependTaskCrossLineDependModuleService跨线依赖
MergeTableTaskMergeTableModuleService / TaskMergeTableInitModuleService合并表
SplitTableTaskSplitTableModuleService分表
ZipperArchiveTaskZipperArchiveModuleService拉链表归档
ZipperRecoverTaskZipperRecoverModuleService拉链表恢复
Json2TableTaskJson2TableModuleServiceJSON转表
ColumnTransRowColumnTransRowModuleService列转行
RowTransColumnRowTransColumnModuleService行转列
RowDynamicTransColTaskRowDynamicTransColModuleService行动态转列
IncrementCompareTaskIncreCompareModuleService增量比较
DataCleanTaskDataCleanModuleService数据清理
DataReturnPullTaskDataReturnPullModuleService数据回拉
FeatureProcessTaskFeatureProcessModuleService特征处理
IndexTagCalTaskIndexTagCalModuleService指标标签计算
IndexTagJsonTaskIndexTagJsonModuleService指标标签JSON
RmsProcessTaskRmsProcessModuleServiceRMS处理
BdapPushTaskBdapPushModuleServiceBDAP推送
TDSqlSlaveMonitorTaskTDSqlSlaveMonitorModuleServiceTDSQL从库监控
TiETLTaskTiETLModuleServiceTiDB ETL
RunTaskRunModuleService直接运行

7.2 数据质量检查规则引擎

规则处理器(Schedule模块 - 调度阶段):

处理器规则
EmptyTableCheckRuleHandler空表检查
NullFieldCheckRuleHandler空字段检查
PrimaryCheckRuleHandler主键检查
FieldBoundaryCheckRuleHandler字段边界检查
FieldEnumCheckRuleHandler字段枚举检查
FieldLengthCheckRuleHandler字段长度检查
SumCheckRuleHandler总和检查
SumRelativeCheckHqlRuleHandler总和相对检查
NullRateCheckHqlRuleHandler空值率检查
BoundRegionCheckHqlRuleHandler边界范围检查
DayCycleRelativeCheckHqlRuleHandler日周期相对检查
FieldEnumNewValueCheckRuleHandler字段枚举新值检查
FieldLengthNewValueCheckRuleHandler字段长度新值检查
NumberRangeNewValueCheckRuleHandler数值范围新值检查

规则处理器(Executor模块 - 执行阶段):

处理器规则
CountRelativeCheckRuleHandler计数相对检查
CountRelativeRateCheckRuleHandler计数相对率检查
CountRelative7DayCheckRuleHandler7天计数相对检查
SumRelativeCheckRuleHandler总和相对检查
SumRelativeRateCheckRuleHandler总和相对率检查
SumRelative7DayCheckRuleHandler7天总和相对检查
NullRateCheckRuleHandler空值率检查
EnumRelativeCheckRuleHandler枚举相对检查
NewEnumCheckRuleHandler新枚举检查
BoundRegionCheckRuleHandler边界范围检查
DayCycleRelativeCheckRuleHandler日周期相对检查
CountDayCycleRelativeCheckRuleHandler计数日周期相对检查
NewValueCheckFieldEnumRuleHandler新值枚举检查
NewValueCheckFieldLengthRuleHandler新值长度检查
NewValueCheckNumberRangeRuleHandler新值数值范围检查
TaskVolatilityCheckRuleHandler波动率检查

7.3 模块工厂模式

通过 @ITaskModuleServiceProductRule(moduleType=...) 注解 + TaskModuleServiceProductFactory 工厂类实现模块的动态创建。每个模块服务类通过注解声明自己处理的模块类型,工厂根据模块类型自动查找并实例化对应的服务。

八、分析服务(Neo4j血缘分析, 任务影响分析, 邮件报告)

8.1 血缘分析

核心服务类: LineAgeAnalyzeService, LineAgeAnalyzePublicService, LineAgeAnalyzeViewService

数据源:

  • MySQL血缘: MySQLLineAgeMapper -- 从MySQL数据库读取任务配置中的SQL,解析血缘
  • Neo4j血缘: Neo4jLineAgeMapper 等12个Neo4j Mapper -- 在Neo4j图数据库中存储和查询血缘关系
  • Hive SQL解析: HqlLineageParse, HiveParseUtil -- 使用Hive SemanticAnalyzer解析SQL中的表级血缘

血缘分析流程:

  1. 定时加载任务配置(LineAgeLoadDataSchedule
  2. 解析任务SQL,提取输入/输出表
  3. 在Neo4j中创建Task和DBTable节点及关系
  4. 提供上下游血缘查询API
  5. 支持任务影响分析(上游变更影响哪些下游任务)

血缘模型层次:

  • BdpTaskLineAges -- 任务级血缘
  • BdpDBTableLineAges -- 表级血缘
  • TaskLineAge / LineAges / LineAgesData -- 具体血缘关系
  • TaskRunTime / TaskModuleRunTime -- 运行时间信息

8.2 任务影响分析

核心服务: TaskEffectResultService, TaskEffectResultSchedule

功能:

  • 分析某个任务变更后影响的下游任务链路
  • 基于Neo4j图遍历实现
  • 生成影响分析报告

8.3 邮件报告

核心服务: MailService, MailBaseService, MailTspViewService

功能:

  • Exchange Web Services (EWS) 集成
  • 定时生成任务运行报告
  • 支持HTML/Excel附件
  • 可配置邮件模板
  • JFreeChart生成趋势图
  • 支持可配置邮件(ConfigurableMail

8.4 其他分析功能

服务功能
TaskCycleCheckService任务依赖环检测(Tarjan算法实现)
TaskExceptionService任务异常分析与统计
TaskIncrementAnalyzeService增量任务分析
CapabilityCheckService任务能力检查
Tsp3hReportService3小时报告
CacheInfoService缓存信息管理
TaskCfgCheckService任务配置检查

8.5 PACE发布管理

ctsp-analysis还集成了PACE(发布管理)相关功能:

  • PaceHelpService -- PACE辅助服务
  • Neo4PublishFileImpl -- 发布文件管理
  • Neo4ReleaseFormImpl -- 发布单管理
  • Neo4SubSystemFormImpl -- 子系统表单管理

九、Controller层(REST API)

9.1 bctsp-app Controller列表

Controller路径说明
TspCommonControllercn.webank.cnc.bdp.task.controller通用请求处理(通过handle_type参数路由),支持动态方法调用
TspJsonAjaxControllercn.webank.cnc.bdp.task.controllerJSON Ajax请求处理,继承自SDK的JsonAjaxController
FileControllercn.webank.cnc.bdp.task.controller文件上传/下载
SqlControllercn.webank.cnc.bdp.task.controllerSQL查询执行
UploadBatchTaskCfgExcelControllercn.webank.cnc.bdp.task.controller批量任务配置Excel上传
TspTaskDateSwitchServiceControllercn.webank.cnc.bdp.task.service.view日期切换服务控制器

9.2 TspCommonController 详解

该Controller采用传统的Spring MVC AbstractController 模式,通过 handle_type 参数进行请求路由:

  • getMaxTaskId -- 获取最大任务ID
  • generateTaskIds -- 批量生成任务ID
  • productKey -- 获取产品Key
  • property -- 获取配置属性
  • findTaskIdListForAutoComplete -- 任务ID自动补全
  • 其他方法通过反射调用

9.3 视图服务Controller

bctsp-app中存在大量的视图服务类(在 service/view/ 包下),它们充当MVC的Controller角色,处理页面请求和返回视图。这些类通常继承自框架的基类Controller。

9.4 移动端API

ctsp-mobile模块提供移动端REST API:

  • 任务运行状态查询
  • 半小时报告数据
  • 任务依赖关系图
  • 任务搜索
  • 任务失败率统计
  • 数据源选择

十、RMB集成

10.1 RMB架构

RMB (Reliable Message Bus) 是微众银行的内部消息总线,基于WeService(WeRPC/WeMQ)框架:

外部系统 --> RMB消息 --> bctsp-schedule (接收/处理)
                         |
                    AppRmbService (异步)
                    AppSyncRmbService (同步)
                         |
                    ITspRequestHandler (路由)
                         |
                    TspServiceImplXXXX (业务处理)

10.2 RMB组件

组件模块说明
ctsp-rmb-agent独立模块轻量级RMB发送工具,供外部系统使用
AppRmbServicebctsp-schedule异步RMB消息处理
AppSyncRmbServicebctsp-schedule同步RMB消息处理
AnalysisSyncRmbServicectsp-analysis分析服务同步RMB
RmbRequestHandlerRegisterctsp-mobile移动端RMB注册
RmbCommonUtil / RmbSendUtils共用RMB发送工具
SendRmbWithXMLContentTools共用XML格式RMB消息发送
SendTssRmbWithXMLContentTools共用TSS格式RMB消息发送

10.3 RMB消息处理(ServiceCode路由)

Schedule模块RMB处理:

ServiceCode 0001-9999 对应不同的业务操作。每个 TspServiceImplXXXX 类实现 ITspRequestHandler 接口,通过ServiceCode注册到 HandlerHolderServiceImpl 进行路由分发。

Analysis模块RMB处理:

ServiceCode 2001-3006 对应分析相关的操作,如血缘查询、任务信息查询等。

10.4 RMB测试工具

  • SendRmbTools (ctsp-rmb-agent) -- 独立RMB发送工具
  • SendRmbWithXMLContentTools -- XML内容RMB发送
  • executor模块还额外打包了一个 RmbSend classifier的JAR,主类为 SendRmbTools

十一、业务流程

11.1 任务配置流程

用户在bctsp-app Web界面配置任务
  |
  v
选择任务类型 (Hive计算/Shell/ETL等)
  |
  v
配置任务基本信息 (调度时间/依赖关系/重试策略)
  |
  v
配置任务模块 (选择模块类型并配置参数)
  |
  v
配置参数组 (可选, 用于多参数任务)
  |
  v
保存到数据库 (task_cfg / task_*_module_cfg 表)

11.2 任务调度流程

Quartz定时触发
  |
  v
TaskSchedule.taskRunSchedule()
  |
  +-- 获取分布式锁
  +-- 加载近30天任务实例
  +-- 计算依赖关系图
  +-- 状态流转判断
  |     |-- 检查上游依赖
  |     |-- 检查自依赖
  |     |-- 检查调度时间
  |     |-- 检查重试间隔
  |     |-- 检查系统停批状态
  |     v
  +-- 更新状态: TASK_WAIT -> TASK_WAIT_BASE -> TASK_WAIT_TIME -> TASK_READY
  |
  v
TaskReady任务被Executor拉取执行

11.3 任务执行流程

Executor检测到TASK_READY任务
  |
  v
加载任务模块配置
  |
  v
通过TaskModuleServiceProductFactory创建模块实例
  |
  v
按模块类型执行:
  |-- HiveCalculate: 提交Hive SQL (via Linkis/BDP-TSS)
  |-- Shell: 执行Shell脚本
  |-- Hive2ES: Hive数据写入ES (via CLES-Client)
  |-- Hive2Tdsql: 数据同步到TDSQL (via Sqoop/Exchangis)
  |-- ColumnMonitor: 执行列级数据质量检查
  |-- DataCheck: 执行数据质量检查规则
  |-- ...
  |
  v
更新任务状态 (SUCCESS/FAIL)
  |
  v
记录运行日志和模块日志
  |
  v
触发下游任务调度

11.4 RMB消息触发流程

外部系统发送RMB消息
  |
  v
bctsp-schedule接收消息
  |
  v
根据ServiceCode路由到TspServiceImplXXXX
  |
  v
TaskRunService.addMsgTaskToRun()
  |
  +-- 创建task_run记录
  +-- 展开多参数任务
  +-- 创建模块实例
  +-- 记录任务日志
  |
  v
任务进入调度队列

11.5 数据质量检查流程

任务配置数据检查模块
  |
  v
Schedule阶段:
  |-- 创建检查实例
  |-- 加载检查规则 (DataCheckRule/ColumnMoniRule)
  |-- 生成检查SQL
  |
  v
Executor阶段:
  |-- 执行检查SQL
  |-- 通过规则引擎评估结果
  |     |-- SumRelativeCheck: 总和相对偏差检查
  |     |-- NullRateCheck: 空值率检查
  |     |-- EnumCheck: 枚举值检查
  |     |-- BoundRegionCheck: 边界范围检查
  |     |-- VolatilityCheck: 波动率检查
  |     |-- ...
  |-- 记录检查结果
  |-- 不合格则告警 (IMS告警)

十二、配置与部署(50+ 配置变体, 多DCN)

12.1 配置目录结构

conf/                          (生产配置)
  |-- bctsp-app/               (Web控制台配置)
  |    |-- bctsp-app.properties
  |    |-- bctsp-app-env.properties
  |    |-- bctsp-app-nodes.env
  |    |-- rmb-client.properties
  |    |-- rmb-system-bctsp-app.properties
  |    |-- weservice.properties
  |    |-- cas.client.properties
  |    |-- sso.client.properties
  |    |-- um_client.properties
  |    |-- log4j.properties / log4j2.xml
  |-- bctsp-schedule/          (调度服务配置, 同上结构)
  |-- bctsp-executor/          (执行服务配置, 同上结构 + fps-client.properties)
  |-- ccctsp-app/              (信用卡版本Web控制台)
  |-- ccctsp-schedule/         (信用卡版本调度服务)
  |-- ccctsp-executor/         (信用卡版本执行服务)
  |-- ctsp-analysis/           (分析服务配置)
  |-- ctsp-mobile/             (移动端配置)

conf-local/                    (本地开发配置, 结构同上)

12.2 多DCN部署

系统支持多DCN(Data Center Node)部署:

  • bctsp-* 系列: 零售/通用版本(b = batch, ctsp = common task scheduling platform)
  • ccctsp-* 系列: 信用卡版本(cc = credit card)
  • 配置中包含 TspFullDcnInfoCfg(全DCN信息配置)
  • 数据源配置支持多DCN切换(TspDataSourceConfiguration, TspPubDataSourceConfiguration
  • conf目录下为每个DCN维护独立的配置文件

12.3 配置文件数量统计

配置类型数量
生产环境配置 (conf/)~50+ 个properties文件
本地开发配置 (conf-local/)~50+ 个properties文件
Mapper XML文件~107个
Spring上下文XML (biz/)~6个
DDL/DML脚本~100+ 个SQL文件
配置变体总计450+

12.4 关键配置项

bctsp-schedule.properties (推断):

  • logFilePath -- 日志文件路径(默认 /data/cnc_nfs/data/ctsp_zschedule/
  • Quartz相关配置
  • 数据源配置
  • RMB消息队列配置
  • BDP-TSS/Linkis连接配置

bctsp-executor.properties (推断):

  • 执行线程池配置
  • Linkis/BDP-TSS连接配置
  • FPS客户端配置
  • Exchangis连接配置
  • Qualitis连接配置

rmb-client.properties:

  • RMB消息总线连接配置
  • 消息队列消费组配置
  • ServiceCode注册

weservice.properties:

  • WeRPC/WeMQ服务端点
  • 服务注册配置

12.5 部署模式

每个服务模块支持独立部署:

  • bctsp-app: WAR包部署到Tomcat或Spring Boot内嵌Tomcat运行
  • bctsp-schedule: Spring Boot JAR,支持多实例部署(通过数据库分布式锁保证单节点调度)
  • bctsp-executor: Spring Boot JAR,支持多实例并行执行
  • ctsp-analysis: WAR包,独立部署
  • ctsp-mobile: Spring Boot JAR,独立部署

十三、外部系统集成

13.1 集成系统总览

外部系统集成方式模块说明
HiveJDBC/Linkis/BDP-TSSschedule/executor大数据SQL计算引擎
Hadoop HDFSHDFS Clientapp/executor分布式文件系统
HBaseBulkLoad APIschedule/executorNoSQL数据库
ElasticsearchCLES-Clientschedule/executor/app搜索引擎(通过cles代理)
TDSQLJDBC/Sqoop/Exchangisschedule/executor分布式数据库
LinkisLinkis Computation Clientschedule/executor计算中间件
BDP-TSSTSS Clientschedule/executor任务提交服务
RMBrmb-api + WeService全部消息总线
FPSfps-clientschedule/executor文件传输服务
Exchangisexchangis-clientexecutor数据交换服务
Neo4jNeo4j JDBC/Boltanalysis图数据库(血缘)
QualitisHTTP APIexecutor数据质量平台
ESBesb-sdkapp企业服务总线
Exchange MailEWS Java APIanalysis邮件服务
企业微信weixin-java-cpmobile企业微信推送
SSO/UMzcnc-sdk-starter-umapp/mobile/analysis统一认证/用户管理
IMSHTTP APIschedule/executor/analysis监控告警
ITSMHTTP APIappIT服务管理
HR系统HTTP APImobile人力资源系统
GNSgns-client全部全局命名服务
BDAPHTTP APIschedule/executor大数据分析平台
QualitisHTTP APIexecutor数据质量管理平台
ZookeeperZK Client全部分布式协调服务

13.2 数据库支持

  • MySQL / TDSQL: 主数据库(任务配置、运行实例、日志等)
  • Neo4j: 图数据库(血缘关系存储)
  • H2: 单元测试数据库
  • Derby: 嵌入式数据库(特定场景)

13.3 SDK集成

系统大量使用微众银行CNC SDK(zcnc-sdk-starter-*):

SDK模块用途
zcnc-sdk-starter-core核心框架(优雅重启等)
zcnc-sdk-starter-db数据库访问
zcnc-sdk-starter-web-mvcWeb MVC框架
zcnc-sdk-starter-rmbRMB消息集成
zcnc-sdk-starter-seq序列号生成
zcnc-sdk-starter-um用户管理
zcnc-sdk-starter-trace分布式追踪
zcnc-sdk-starter-msgtools消息工具
zcnc-sdk-starter-security安全框架
zcnc-sdk-starter-systemstatus系统状态
zcnc-sdk-starter-flowcontrol限流控制
zcnc-sdk-starter-distributed-lock分布式锁
zcnc-sdk-starter-task-exec任务执行框架
zcnc-sdk-starter-ioIO工具
zcnc-sdk-starter-simpletester测试框架
zcnc-sdk-starter-data-clean数据清理
zcnc-sdk-starter-i18n国际化
zcnc-sdk-starter-mybatispluginMyBatis代码生成

附录:关键数据统计

指标数量
Maven模块数10
Java源文件总数(main)~1,936
bctsp-app Java文件~532
Mapper XML文件~107
ETL模块类型45+
数据质量检查规则类型30+
RMB ServiceCode处理类20+
Quartz定时任务类13
Neo4j Mapper12
Controller类6
配置properties文件100+
DDL/DML脚本100+
外部系统集成20+

报告生成时间: 2026-06-05分析工具: Claude Code (Automated Static Analysis)