otter学习 | canal和otter的关系?

本文对比了Canal&Otter技术与MySQL复制技术,并详细解释了两者之间的相似性和差异。Canal&Otter类似于MySQL的复制流程,但它们在数据处理方式和部署模式上有所不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在回答这问题之前,首先来看一张canal&otter和mysql复制的类比图:
这里写图片描述
mysql的自带复制技术可分成三步:

  1. master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events,可以通过show binlog events进行查看);

  2. slave将master的binary log events拷贝到它的中继日志(relay log),这里是I/O thread线程;

  3. slave重做中继日志中的事件,将改变反映它自己的数据,这里是SQL thread线程。

基于canal&otter的复制技术和mysql复制类似,具有类比性:

  1. Canal对应于I/O thread,接收Master Binary Log;

  2. Otter对应于SQL thread,通过Canal获取Binary Log数据,执行同步插入数据库;

两者的区别在于:

  1. otter目前嵌入式依赖canal,部署为同一个jvm,目前设计为不产生Relay Log,数据不落地;

  2. otter目前允许自定义同步逻辑,解决各类需求;
    a. ETL转化. 比如Slave上目标表的表名,字段名,字段类型不同,字段个数不同等.
    b. 异构数据库. 比如Slave可以是oracle或者其他类型的存储,nosql等.
    c. M-M部署,解决数据一致性问题
    d. 基于manager部署,方便监控同步状态和管理同步任务.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值