7.1.5. 多发整体架构介绍

7.1.5.1. 流程图

../../_images/multiplex_overall_architecture_2024-09-09_13-48-45.png

7.1.5.2. 相关组件说明

7.1.5.2.1. Blade平台或者其他自动化工具

请求的发起者(复制请求到下一个节点IAR或者其他网关)

7.1.5.2.2. 统一sql

7.1.5.2.2.1. sql-convert-runtime

作为fat包集成到微服务中拦截运行时sql,查询sql引起的表数据变化并发送到比对服务。

7.1.5.2.2.2. 动态库

统一sql动态库,被sql-convert-runtime依赖,支持服务器架构x86_64或者arm,其中unisql.linux.x86_64.so支持架构x86_64,unisql.linux.aarch64.so支持架构arm。

7.1.5.2.3. 微服务

微服务集成统一sql后,业务操作产生运行时sql被统一sql拦截后发送到pulsar。

7.1.5.2.4. pulsar

作为MQ,接收微服务发送的消息(包含sql引起的表数据变化),推送消息到比对服务。

7.1.5.2.5. 比对服务

订阅pulsar主题,消费消息,比对数据结果产生比对报告。

7.1.5.3. 配置说明

7.1.5.3.1. 微服务

7.1.5.3.1.1. 集成统一sql

7.1.5.3.1.1.1. 数据源驱动类

微服务配置的数据源驱动类统一配成 com.hundsun.lightdb.unisql.proxy.Driver

7.1.5.3.1.1.2. 配置数据库jdbc连接

参考 统一sql配置数据库jdbc连接

7.1.5.3.1.1.3. 集成sql-convert-runtime
  • 方式1 将 sql-convert-runtime-fat-xxx.jar 外挂到微服务可以加载的文件目录

  • 方式2 在项目中通过pom依赖的方式引入

<dependency>
        <groupId>com.hundsun.lightdb</groupId>
        <artifactId>sql-convert-runtime</artifactId>
        <version>${sql-convert-runtime.version}</version>
<dependency>
7.1.5.3.1.1.4. sql-convert-runtime配置项

参数

说明

unisql.multi.sendCompareService

是否采集sql变化并发送pulsar的总开关。 取值范围[true,false]。默认false。 注意 这里是 配置为true表示采集sql变化并发送pulsar ;支持系统参数配置(-D)

unisql.multi.onlyCompare

是否采集sql变化。 取值范围[true,false]。默认false。 注意 这里是 配置为true表示采集sql变化(调用动态库dml转sql并查询前/后数据结果) ;支持系统参数配置(-D)

unisql.multi.collect.trace.info

是否采集链路信息(trace_id,微服务名称,微服务内功能号,微服务内功能号对应方法内sql执行顺序编号)。 取值范围[true,false]。默认false。 注意 这里是 配置为true表示采集链路信息(trace_id,微服务名称,微服务内功能号,微服务内功能号对应方法内sql执行顺序编号) ;支持系统参数配置(-D)

7.1.5.3.1.1.5. 配置动态库

参考 统一sql配置动态库

7.1.5.3.1.1.6. pulsar客户端生产者配置

参数

说明

unisql.multi.pulsarServiceUrl

Pulsar服务端地址,样例数据:pulsar://ip:port;支持系统参数配置(-D)

unisql.multi.topicName

Pulsar的持久化主题,主题格式:persistent://<tenant>/<namespace>/<topic>,样例数据为:persistent://public/default/recordMonitorJingji;支持系统参数配置(-D)

7.1.5.3.1.1.7. 配置文件unisql.conf配置项

参数

说明

unisql.skip

全局透传,开启后所有SQL不进行转换直接透传。 1开启0不开启 默认不开启 ,在取值范围之外的按照默认值处理。 注意 这里是 配置为1开启全局透传

7.1.5.3.2. 比对服务

7.1.5.3.2.1. pulsar客户端消费者配置

参数

说明

unisql.multi.pulsarServiceUrl

Pulsar服务端地址,样例数据:pulsar://ip:port

unisql.multi.topicName

Pulsar的持久化主题,主题格式:persistent://<tenant>/<namespace>/<topic>,样例数据为:persistent://public/default/recordMonitorJingji

unisql.multi.subscriptionName

在Pulsar中,订阅(Subscription)是用于消费主题消息的标识符。订阅名称是用来标识不同消费者或消费组在订阅相同主题时的唯一标识。合法字符串即可,比如jingjiTest

7.1.5.3.2.2. 配置动态库

参考 统一sql配置动态库