• 数据分发服务


    服务简码 HDTT

    默认端口 8180

    默认路由 /hdtt/**

    组件编码 hzero-transfer

    数据分发服务提供了将基础数据变更从源服务同步分发至其他目标服务的基础能力, 同时提供了数据审计、操作审计等基础能力。

    功能特性

    初始化

    同步类型

    同步维度

    前提条件

    安装

    # mvn spring-boot:run
    

    使用

    源服务端

    <dependency>
        <groupId>org.hzero.boot</groupId>
        <artifactId>hzero-boot-transfer</artifactId>
        <version>${hzero.boot.version}</version>
    </dependency>
    
    # application.yml
    hzero:
      transfer:
        monitor:
          enabled: true # 是否启用数据变更监控功能
        dataTransfer:
          enabled: true # 是否启用数据变更分发功能
        dataAudit:
          enabled: true # 是否启用数据变更审计功能
    
    1. 生产事件表: hdtt_producer_event, 数据变更消息首先保存至本地事件表
    2. 生产事件归档表: hdtt_producer_event_arch, 变更数据同步至服务器端之后的归档

    目标服务端

    1. 消费事件表: hdtt_consumer_event, 数据变更消费前首先同步保存至本地消费事件表
    2. 消费事件归档表: hdtt_consumer_event_arch, 数据消费成功后归档

    服务器端

    过程

    术语: 生产DB、消费DB、主表(正式表)、多语言表(正式表)、临时表、备份表

    DB维度初始化

    1. 首先清除消费DB临时表数据(如果表结构不存在则创建)
    2. 生产DB主表、多语言表数据迁移至消费DB主表、多语言表对应的临时表
    3. 迁移成功后, 消费DB将临时表更名为正式表(首先备份已有正式表)
    4. 过程中异常时, 消费DB从备份表恢复正式表(整张表反向更名)

    租户维度初始化

    1. 主表: 消费DB提前清除主表对应的临时表对应租户数据, 然后主表对应租户的数据迁移至临时表进行备份, 最后清除主表对应租户数据(备份); 临时表: 清除消费DB多语言表对应的临时表
    2. 生产DB主表对应租户的数据直接迁移至消费DB主表(不经过临时表); 生产DB多语言表全表数据(目前无法定位租户的多语言数据-无法拿到主键)迁移至消费DB多语言表对应的临时表
    3. 迁移成功后, 消费DB主表数据不作处理; 多语言临时表更名为正式表(首先备份已有正式表)
    4. 过程中异常时, 消费DB主表对应租户的数据从临时表恢复(数据反向复制), 多语言表数据从备份表恢复(整张表反向更名)

    其他场景

    约束限制

    远景规划

    版本更新日志

    后端

    版本 0.10.0.RELEASE [2019-07-20]

    版本 0.11.0.RELEASE [2019-08-07]

    前端

    版本 0.10.0 [2019-07-20]

    版本 0.11.0 [2019-08-07]