Otter-Manager数据同步


https://github.com/alibaba/otter/wiki

一、Otter 整体架构图(官方)

组件关系:

  • 左边:源数据库(MySQL/Oracle)
  • 中间:Canal → Otter Node → Zookeeper → Otter Manager
  • 右边:目标数据库(MySQL/Oracle)

二、文字版架构图(更清晰)

复制代码
+----------------+         +---------+
|  源库 MySQL    |         | Zookeeper|
| (binlog=ROW)   |<------>| (协调调度)|
+--------+-------+         +----+------+
         |                           ^
         v                           |
+----------------+         +---------+------+
|    Canal Server|         |   Otter Manager |
| (解析binlog) |         | (Web UI/配置) |
+--------+-------+         +---------+------+
         |                           ^
         v                           |
+----------------+         +---------+------+
|   Otter Node   |<--------| 配置下发/状态回传
| (SETL执行)   |         +----------------+
+--------+-------+
         |
         v
+----------------+
|  目标库 MySQL  |
+----------------+

三、核心原理(一句话)

Otter 基于 Canal 模拟 MySQL Slave 拉取 binlog,在 Node 节点完成 Select→Extract→Transform→Load(SETL),由 Manager 统一管理配置与监控,Zookeeper 负责分布式调度与容错。


四、各组件作用

  1. 源库
  • 开启 binlog,格式必须是 ROW
  • 授权 canal 账号:REPLICATION SLAVE
  1. Canal
  • 伪装成 MySQL Slave,实时拉取并解析 binlog
  • 输出标准化的增量数据事件(INSERT/UPDATE/DELETE)
  1. Otter Node(核心worker)
  • S(Select):接收 Canal 数据
  • E(Extract):解析、过滤
  • T(Transform):字段映射、数据转换
  • L(Load):批量写入目标库
  1. Zookeeper
  • 集群协调、节点选举、任务分配
  • 保证多个 Node 高可用与负载均衡
  1. Otter Manager
  • Web 管理界面:配置数据源、Channel、Pipeline、映射规则
  • 推送配置到 Node 、收集同步状态/延迟/位点
  • 监控告警、位点管理、重置同步

五、同步流程(极简五步)

  1. 源库写入 → 生成 binlog
  2. Canal 拉取 binlog → 解析成数据变更事件
  3. Node 接收事件 → 过滤/转换/拼装 SQL
  4. Node 批量执行 SQL → 写入目标库
  5. Manager 监控进度 → 异常告警

六、核心概念对照

  • Channel:同步通道(单向=1个Pipeline,双向=2个Pipeline)
  • Pipeline:源→目标的完整同步链路
  • DataMediaPair:源表 ↔ 目标表 映射
  • ColumnPair :字段映射(如源user_name→目标name)

相关推荐
IT19957 分钟前
Fail2Ban 防护 MySQL 实战|登录失败 3 次,IP 封禁 24 小时
数据库·mysql
Data-Miner36 分钟前
面对 AI 大模型智能涌现,如何从技术层面保护好隐私与数据安全?
大数据·人工智能
会议咨询2 小时前
2027年电力电子、人工智能与大数据国际会议(PEABD 2027)
大数据·人工智能·电力电子
GlobalInfo3 小时前
全球包装检测用3D轮廓传感器市场调研:2026年规模预计达1.87亿美元,食品医药与电商物流需求推动增长
大数据·人工智能·3d
paopaokaka_luck3 小时前
流浪动物救助与收养系统(DeepSeek AI对话、 ECharts多维分析、救助流程衔接、领养与回访衔接、 捐赠确认与公示、志愿者协作)
java·前端·javascript·人工智能·mysql·echarts·推荐算法
程序 代码狂人3 小时前
切片表与分区表的区别(数据开发面试版)
java·大数据·开发语言·数据仓库·算法
lzhdim4 小时前
100条常用SQL语句
数据库·sql·mysql·mybatis
starzy19905 小时前
Kafka响应发送:字节是怎么真正写回客户端的
大数据·kafka
数字新视界5 小时前
国产动环数据库在智能机房环境监控中的应用与优势分析
大数据·人工智能·数据中心·机房管理·模块化机房
古法老登瞎折腾5 小时前
大数据智能运维实战(九):让 AI 查日志——找到异常,也保留上下文
java·大数据·运维·人工智能·spring ai·mcp