10.2. 多发比对服务产品介绍
多发比对服务支持两种部署方式,1对多真多发和1对1伪多发两种方式。下面以伪多发的流程图进行产品的介绍,可以让大家对该产品有个全面的了解。
10.2.1. 流程图(伪多发流程图为例)
10.2.2. 相关组件说明
10.2.2.1. Blade平台或者其他自动化工具
请求的发起者(复制请求到下一个节点IAR或者其他网关)
10.2.2.2. 统一sql
10.2.2.2.1. sql-convert-runtime
作为fat包集成到微服务中拦截运行时sql,查询sql引起的表数据变化并发送到比对服务。
10.2.2.2.2. 动态库
统一sql动态库,被sql-convert-runtime依赖,支持服务器架构x86_64或者arm,其中unisql.linux.x86_64.so支持架构x86_64,unisql.linux.aarch64.so支持架构arm。
10.2.2.3. 微服务
微服务集成统一sql后,业务操作产生运行时sql被统一sql拦截后发送到pulsar。
10.2.2.4. pulsar
作为MQ,接收微服务发送的消息(包含sql引起的表数据变化),推送消息到比对服务。
10.2.2.5. 比对服务
订阅pulsar主题,消费消息,比对数据结果产生比对报告。
10.2.3. 配置说明
10.2.3.1. 微服务集成统一sql侧配置
10.2.3.1.1. 数据源驱动类
微服务配置的数据源驱动类统一配成 com.hundsun.lightdb.unisql.proxy.Driver
10.2.3.1.2. 配置数据库jdbc连接
10.2.3.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>
10.2.3.1.4. sql-convert-runtime配置项
参数 |
说明 |
multi.sendCompareService |
是否发送到比对服务(总开关),默认0不发送到比对服务,取值范围[0,1] |
multi.onlyCompare |
在发送比对服务的前提下(即配置项multi.sendCompareService=1),默认1表示采集dml前后数据变化并发送到pulsar,取值范围[0,1] |
multi.collect.trace.info |
在发送比对服务的前提下(即配置项multi.sendCompareService=1),用于是否从线程threadlocal变量获取trace_id(标识某次sql操作),默认为0表示关闭,取值范围[0,1] |
10.2.3.1.5. 配置动态库
参考 统一sql配置动态库
10.2.3.1.6. pulsar客户端生产者配置
参数 |
说明 |
multi.pulsarServiceUrl |
Pulsar服务端地址,格式为:pulsar://<ip>:<port> 样例数据:pulsar://10.20.47.203:6650 |
multi.topicName |
Pulsar的持久化主题,主题格式:persistent://<tenant>/<namespace>/<topic>,样例数据为:persistent://public/default/recordMonitorJingji;支持系统参数配置(-D) |
10.2.3.1.7. 配置文件unisql.conf配置项
pulsar客户端生产者配置
,sql-convert-runtime配置项
均支持在配置文件unisql.conf中配置关键配置项说明
参数 |
说明 |
unisql.skip |
全局透传,开启后所有SQL不进行转换直接透传。 1开启0不开启 默认不开启 ,在取值范围之外的按照默认值处理。 |
10.2.3.2. 比对服务侧配置
10.2.3.2.1. pulsar客户端消费者配置
参数 |
说明 |
multi.pulsarServiceUrl |
Pulsar服务端地址,格式为:pulsar://<ip>:<port> 样例数据:pulsar://10.20.47.203:6650 |
multi.topicName |
Pulsar的持久化主题,主题格式:persistent://<tenant>/<namespace>/<topic>,样例数据为:persistent://public/default/recordMonitorJingji |
multi.subscriptionName |
在Pulsar中,订阅(Subscription)是用于消费主题消息的标识符。订阅名称是用来标识不同消费者或消费组在订阅相同主题时的唯一标识。合法字符串即可,比如jingjiTest |