初识 Otter
Otter
概念
“数据搬运工”,基于数据库增量日志解析,准实时同步本机房或异地机房的 MySQL/Oracle 数据库的一个分布式数据库同步系统。
Otter 是由阿里开源的一个数据同步产品,它的最初的目的是为了解决跨国异地机房双 A 架构、两边可写的场景,目前阿里巴巴 B2B 内部的本地/异地机房的同步需求基本全上了 Otter。
双 A 机房:双机房互备,任意一个机房掉线,服务依然可用。
B2B:Business-to-Business,是指企业与企业之间通过专用网络或 Internet,进行数据信息的交换、传递,开展交易活动的商业模式。
原理
-
基于 Canal 开源产品(Alibaba 另一个开源产品),获取数据库增量日志数据
-
典型管理系统架构:manager(web 管理)+ node(工作节点)
- manager 运行时推送同步配置到 node 节点上
- node 节点将同步状态反馈到 manager 上
-
基于 zookeeper,解决分布式状态调度,允许多 node 节点之间协同工作
Otter Manager
使用(参考)
-
机器管理 --> zookeeper 管理 --> 添加
-
机器管理 --> node 管理 --> 添加
一些参数:
- ip:对应 node 节点将要部署的机器 ip,如果有多 ip 时,可选择其中一个 ip 进行暴露(此 ip 是整个集群通讯的入口,实际情况千万别使用 127.0.0.1,否则多个机器的 node 节点会无法识别)
- 机器端口:对应 node 节点将要部署时启动的数据通讯端口,建议值:2088
- 下载端口:对应 node 节点将要部署时启动的数据下载端口,建议值:9090
- 外部 ip :对应 node 节点将要部署的机器 ip,存在的一个外部 ip,允许通讯的时候走公网处理
- zookeeper 集群:为提升通讯效率,不同机房的机器可选择就近的 zookeeper 集群
- 配置管理 --> 数据源配置 --> 添加两个数据源(主、从)
- 配置管理 --> 数据表管理 --> 添加两张表作为测试(数据源从上面配置的去选择)
- 配置管理 --> Canal 配置 --> 添加
- 同步管理 --> Channel 管理 --> 添加 --> 点进去看详情 --> Pipelining 管理 --> 添加 --> 点进去看详情 --> 映射关系列表 --> 添加
- 同步管理 --> Channel 管理 --> 点击【启用】–> 数据库操作时,源表和目标表就能实现准同步了
以上有些配置参数使用默认配置就 ok。