一、概述

生产中常常需要将数据组织成某种规范格式以接口或远程调用的方式提供给下端系统,数据类型、数据格式规范、下端系统类型常常存在多种不同的需求和可变因素,因此可将数据分发业务剥离出来,无关具体业务,形成一套数据格式规范可配置、可选择并且数据类型和下端系统可扩展可插拔的组件。
1.必须遵守的事情

  • 上游系统和下端系统保持数据的一致性
  • 分发任务的执行有先后顺序,不可乱序
  • 不同数据类型、不同下端系统的分发任务具有独立性

2.需要解决的事情

  • 可动态增加或减少下端系统
  • 可动态增加或减少任务类型
  • 数据报文格式可配置、可选择
  • 任务分组,不同组的调度任务相互独立,属于独立的分发体系

二、概要设计

1.构架图

数据接收 分发 架构 数据分发服务方案设计_端系统


调度-分发构架图

数据接收 分发 架构 数据分发服务方案设计_端系统_02


分发服务构架图

2.概要说明

2.1 任务注册

将不同数据类型的任务注册进来,注册信息包含任务分组标识、获取原始数据的接口、获取原始数据方式、调度时间、描述等信息。不同的任务分组所请求的数据分发服务不一样。

数据接收 分发 架构 数据分发服务方案设计_端系统_03

数据接收 分发 架构 数据分发服务方案设计_数据接收 分发 架构_04

任务注册信息表

2.2 报文模板配置
将提取的数据组装成具有规范格式的报文,比如包含的字段属性、报文格式(json或xml)等。

2.3 下端系统注册

将下端系统注册进来,注册信息包含下端系统唯一标识、数据接收接口、选择任务类型和报文模板

数据接收 分发 架构 数据分发服务方案设计_数据分发_05


下端系统注册信息表

数据接收 分发 架构 数据分发服务方案设计_数据分发_06


下端系统绑定任务类型、模板关系表

2.4 任务统一接收接口
提供开放接口,规范接口参数(参数包含任务类型、数据编号等信息),接收并持久化任务到队列。

2.5 任务队列

数据库表存储任务队列,状态字段记录任务执行情况,任务历史表存储执行日志和结果。

数据接收 分发 架构 数据分发服务方案设计_数据接收 分发 架构_07

同一组同一种数据类型需要下发到多个下端系统,只会生成一条分发任务。

2.6 数据分发

  • 根据任务类型标识可查询任务注册信息,根据数据获取接口获取原始数据。
  • 根据任务类型标识可在下端系统与任务类型、模板关系表中查询到需要下发的下端系统和模板,根据模板组装数据
  • 发送组装后的数据报文

三、详细设计

1.流程图

略;

2.类图

数据接收 分发 架构 数据分发服务方案设计_数据_08