您的位置:首页 > 其它

otter学习(5)— canal和otter的关系?

2018-03-25 15:41 344 查看
在回答这问题之前,首先来看一张canal&otter和mysql复制的类比图:



mysql的自带复制技术可分成三步:

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

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

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

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

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

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

两者的区别在于:

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

otter目前允许自定义同步逻辑,解决各类需求;

a. ETL转化. 比如Slave上目标表的表名,字段名,字段类型不同,字段个数不同等.

b. 异构数据库. 比如Slave可以是oracle或者其他类型的存储,nosql等.

c. M-M部署,解决数据一致性问题

d. 基于manager部署,方便监控同步状态和管理同步任务.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐