3.数据服务共享发布关键设计

数据服务共享发布设计主要从数据服务发布、故障告警、数据质量核检、数据服务监控四个层面去考虑。

数据服务发布

数据服务发布提供两种类型的服务发布:实时服务发布、批量服务发布。

• 实时服务发布:将DBHBaseFile数据发布成实时服务,以RESTful方式提供。

• 批量服务发布:将DBHive数据发布成批量服务,以文件方式提供。

实时服务发布-微服务架构的实时服务引擎

实时服务引擎是基于SpringBoot框架实现的微服务架构引擎,支持分布式部署,线性扩展。提供扩展能力,封装内部技术实现细节,通过扩展接口实现对特殊需求的服务发布。

支持三种数据类型服务:

• 数据源服务:基于数据资源目录将整个数据源发布服务;

• 单表服务:基于数据资源目录将选定的单表及字段发布成服务;

• 结果集服务:基于数据资源目录将选定的多张表及字段组装形成新的结果集发布成服务。

实时服务发布-发布逻辑

实时服务发布逻辑主要分为几个步骤:

1. 选择所要发布的资源;

2. 填写所发布服务的基本信息;

3. 实时服务引擎根据预先定义的vm模板,动态生成APIcontrollerservicedaoModel等层的Java代码,编译后发布为RESTful服务,提供Swagger服务描述。

批量服务发布引擎

批量服发布引擎基于数据流的异步处理模型,可将DBHive资源快速生成指定的文件类型服务,主要提供ExcelCsvXml三种文件类型。

批量服务提供三种访问方式:

1. sftp:将文件推送到ftp server,通过sftp的方式进行下载;

2. https:通过https方式下载文件;

3. P2P:借助于普元文件传输工具实现点对点的可靠文件传输。

故障告警

通过事件的方式按照自定义规则进行检查,当满足规则时进行告警,支持以站内信息、邮件、短信方式进行通知。

• 服务引擎告警:对服务引擎CPU、内存指标进行检测,当达到阈值时进行告警;

• 服务状态告警:实时探测服务状态,当服务停止运行时进行告警通知;

• 服务质量告警:针对服务的访问异常、响应时间进行监控,当访问出现异常或者响应时间达到阈值时进行告警。

数据质量检核

在数据服务共享发布整个环节提供对数据资源的质量检核能力,在事前、事中、事后进行质量核检,保证数据质量。支持按照自定义规则进行核检。

• 事前:对主外键、时间戳字段、数据类型等进行核检;

• 事中:对非空、重复记录等进行核检;

• 事后:对及时性、一致性等进行核检。

数据服务监控

数据服务监控主要从异步日志落地、日志读取解析指标、指标存储及故障处理等方面去考虑。

在运行环境中日志引擎(SSM)与Gateway一对一部署,通过异步分析Gateway的调用日志,提供服务调用结果、服务性能、服务调用耗时等指标。