canal+otter数据同步和MySQL主从复制有哪些不同?

新入职的公司在使用canal和otter做数据同步,我之前没有用过这两个中间件,只知道MySQL主从复制。在我看来,MySQL的主从复制不就是一种数据同步吗?canal+otter的数据同步和MySQL的主从复制有什么不同?为什么要用它们?

回复
阅读 703
2 个回答

原理

canal+otter同步的本质原理和MySQL主从复制是相同的。

MySQL主从复制时从服务器有两个线程:

  1. I/O Thread,负责接收主服务器的BinLog并写入本地RelayLog
  2. SQL Thread,负责读取RelayLog进行SQL重放
  1. canal相当于I/O Thread
  2. otter相当于SQL Thread

区别

  1. canal+otter方案可以不落盘,不产生磁盘I/O
  2. canal+otter可以对数据进行干预,插入其他逻辑,比如同步ElasticSearch

canal+otter 你可以同步到 oracle/mysql,还可以再同步过程中插入你自己的逻辑,比如过滤,或者转存其他存储;但 mysql 主从复制,你只能复制到 mysql,啥也干不了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏