Otter同步原理
![07b685fbc3cbb11a8a33b2ed206ec3ef.png](https://i-blog.csdnimg.cn/blog_migrate/3fd2c9cf272f1ef6af8b74a642cc7d26.jpeg)
架构图
上图里面关键几个元素介绍:
db : 数据源以及需要同步到的库
Canal : 用户获取数据库增量日志(源库增量日志)
manager : 配置同步规则设置数据源同步源等
zookeeper : 协调node进行协调工作
node : 负责任务处理,处理接受到的部分同步工作
测试环境
主库:
ip:192.168.3.127
port:3306
库名:qh_wt
从库:
ip:192.168.3.126
port:3306
库名:qh_wt、qh_wt1
同步方式:全库同步、多表同步(源库同步到多库)。
目的:将源库qh_wt下的所有表数据同时同步到从库qh_wt、qh_wt1中。
同步配置
数据源配置
数据源名:主库
数据类型:MYSQL
编码:UTF8
URL:jdbc:mysql://192.168.3.127:3306
数据源名:从库
数据类型:MYSQL
编码:UTF8
URL:jdbc:mysql://192.168.3.126:3306
![d119c7d0e78fb1b78ddb901e253b09d0.png](https://i-blog.csdnimg.cn/blog_migrate/4c2647d0ab6b63b6ad4d14cfc8f73115.jpeg)
数据表配置
主:
schema name:qh_wt
table name:(.*)
数据源名称:主库
数据源类型:MYSQL
从:
schema name:qh_wt
table name:(.*)
数据源名称:从库
数据源类型:MYSQL
从:
schema name:qh_wt1
table name:(.*)
数据源名称:从库
数据源类型:MYSQL
![f042cb0b0b7c636187fc59b647ff7083.png](https://i-blog.csdnimg.cn/blog_migrate/97ccfd5c423586307f302e767d980e79.jpeg)
Canal配置
canal名称:canaltest
运行模式:EMBEDDED
Zookeeper集群:zookeeper集群 [ 192.168.3.18:2181,192.168.3.19:2181,192.168.3.60:2181 ]
数据源类型:MYSQL
数据库地址:localhost:3306;
数据库帐号:root
connectionCharset:UTF-8
![7e2d29edb6ff03ae00e17fc3be18e650.png](https://i-blog.csdnimg.cn/blog_migrate/6bab7ac7d93cdf9b408c8bb2095435a7.jpeg)
Channel
Channel名字:channeltest
同步方向:单向
运行状态:运行
同步一致性:基于当前日志变更
同步模式:行记录同步
是否开启数据一致性:开启
一致性算法:单向回环补救
一致性反查数据库延迟阀值:60秒
![46c1cb286bfcd4e55e43cdffa39606f1.png](https://i-blog.csdnimg.cn/blog_migrate/d44f8fd00ef98503f3f1dec713278688.jpeg)
Pipeline配置
Pipeline名字:pipelinetest
Select机器:node1;
Load机器:node1;
并行度:5
数据反查线程数:10
数据载入线程数:15
文件载入线程数:15
主站点:false
同步数据来源:Canal
Canal名字:canaltest
主道消费批次大小:6000
获取批次数据超时时间:-1
![46f40ce57a275da5efe02704aca97a4d.png](https://i-blog.csdnimg.cn/blog_migrate/f83736fb94d5160b86303e8ce414ef86.jpeg)
映射关系
同步1
源端数据表:Schema Name:qh_wtTable Name:(.*)Source Name:主库
目标数据表:Schema Name:qh_wtTable Name:(.*)Source Name:从库
同步2
源端数据表:Schema Name:qh_wtTable Name:(.*)Source Name:主库
目标数据表:Schema Name:qh_wt1Table Name:(.*)Source Name:从库
![c0db239b4202b514b2ebfbc8ba0152d7.png](https://i-blog.csdnimg.cn/blog_migrate/3dadfac7e4abeccebe50985a8c6219a3.jpeg)
测试结果
支持多表同步,同一个源库可以同步到多个目标库,目标库必须必须存在,这种情况只需要在同一个Pipeline下配置多个映射关系即可。
可以基于库同步,也可以基础表同步,不支持基础实例的全库同步,如果一个实例下存在多个库需要同步,则需要添加要同步的数据表配置。
欢迎关注:悬钟Mr
https://www.toutiao.com/c/user/5844231468/#mid=1634198915259405