mysql主从canal_mysql同步之otter/canal环境搭建完整详细版

这一篇详细介绍otter/canal环境搭建以及当同步出现异常时如何排查。本文主要参考https://blog.csdn.net/wudufeng/article/details/78688240搭建,出现异常时,主要参考了otter的官方文档,时候阅读官方文档的时候,发现大家还是可以直接参考官方文档吧,本文和https://blog.csdn.net/wudufeng/article/details/78688240基本上下列几个官方文档的整合。只不过文本会包含一些额外的阐述和解释以便更好的理解上下文。

总的来说,搭建DEMO式可用的otter环境很简单,关键在于HA和异常时如何让他快速恢复、压测时的延时如何尽可能短,TPS尽可能高。

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

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

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

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

https://github.com/alibaba/otter/wiki/Manager%E9%85%8D%E7%BD%AE%E4%BB%8B%E7%BB%8D

https://github.com/alibaba/otter/wiki/Manager%E4%BD%BF%E7%94%A8%E4%BB%8B%E7%BB%8D

https://github.com/alibaba/otter/wiki/%E6%98%A0%E5%B0%84%E8%A7%84%E5%88%99%E9%85%8D%E7%BD%AE

https://blog.csdn.net/wudufeng/article/details/78688240

https://github.com/alibaba/otter/wiki/%E6%98%A0%E5%B0%84%E8%A7%84%E5%88%99%E9%85%8D%E7%BD%AE(对于自定义扩展来说,这个文档是重点)

https://github.com/alibaba/otter/wiki/Otter%E6%89%A9%E5%B1%95%E6%80%A7

https://github.com/alibaba/otter/wiki/Otter%E9%AB%98%E5%8F%AF%E7%94%A8%E6%80%A7

otter的总体架构

7cf620f00e311ed4ff1959cd3057be97.png

otter强依赖于canal,并对canal的配置有一定的约束。也正是因为强约束,在node中集成了canal,canal作为node的线程运行,使用otter搭建mysql同步环境不需要先手工搭建canal。在开始进入搭建环节之前,建议先看下术语,除非很清楚了,不然相信我,你还是要回过头来看的。

Pipeline:从源端到目标端的整个过程描述,主要由一些同步映射过程组成

Channel:同步通道,单向同步中一个Pipeline组成,在双向同步中有两个Pipeline组成

DataMediaPair:根据业务表定义映射关系,比如源表和目标表,字段映射,字段组等

DataMedia : 抽象的数据介质概念,可以理解为数据表/mq队列定义

DataMediaSource : 抽象的数据介质源信息,补充描述DateMedia

ColumnPair : 定义字段映射关系

ColumnGroup : 定义字段映射组

Node : 处理同步过程的工作节点,对应一个jvm

他们之间的关系为:

dc99153afdfb62101ee7738a188c6b36.png

下面进入正题,otter的搭建。

otter搭建

环境准备

从上图和otter文档可知,otter/canal均使用java开发,配置信息存储在mysql中,同步和HA信息在zk中。所以我们需要先安装下列包:

jdk 1.8

zk 3.4.x 参考https://zookeeper.apache.org/doc/r3.4.12/zookeeperStarted.html

aria2。yum install aria2   ## aria2(官网) 是一款开源、轻量级的多协议命令行下载工具,支持 HTTP/HTTPS、FTP、SFTP、BitTorrent 和 Metalink 协议,拥有众多第三方支持插件,被誉为「下一代下载工具」和「下载神器」,然而由于安装配置复杂,挡住了许多人的使用。参考http://blog.sina.com.cn/s/blog_6bf2cd8a0102x3w2.html

otter的安装包以及脚本:

从https://github.com/alibaba/otter/releases下载,例如:

ec11e1792768be7d21602af874804a24.png

下载并分别解压到/usr/local/app/node,/usr/local/app/manager目录,如下:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现MySQL实时同步MySQL可以借助canal工具来完成。 canal是阿里巴巴开源的一款基于MySQL增量日志解析,仅支持MySQL数据库的日志增量订阅和消费工具。通过订阅MySQL的binlog日志,canal可以获取到数据库的增量更新信息,并将这些信息解析后发送给其他应用进行消费。 为了实现MySQL实时同步MySQL,可以按照以下步骤进行操作: 1. 下载并安装canal工具。可以从canal的官方GitHub仓库下载最新本的canal压缩包,并解压到指定目录。 2. 配置canal。在canal的配置文件中,需要设置MySQL的连接信息、要订阅的数据库和表信息等。 3. 启动canal。在命令行中切换到canal所在的目录,执行启动命令,让canal开始监听MySQL的binlog日志。 4. 消费binlog信息。通过编写Java等编程语言的消费端程序,连接到canal并接收解析后的binlog信息。在消费端程序中,可以根据业务需求将解析后的增量更新信息同步到另一个MySQL数据库中。 需要注意的是,由于canal只是将MySQL的增量日志解析成了结构化的数据,并没有提供具体同步MySQL的功能。因此,在步骤4中编写的消费端程序需要自行实现将解析后的binlog信息同步到另一个MySQL数据库的逻辑。 值得一提的是,canal还支持其他类型的消息队列,如Kafka等,通过消息队列可以实现更多应用场景下的实时数据同步。 总结而言,利用canal工具可以实现MySQL实时同步MySQL,通过订阅MySQL的binlog日志并解析后发送给消费端程序,再进行相应的同步操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值