前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Otter小试

Otter小试

作者头像
jeanron100
发布2019-08-28 11:59:50
8680
发布2019-08-28 11:59:50
举报
文章被收录于专栏:杨建荣的学习笔记

这是学习笔记的第 2080 篇文章

之前因为机房多活的需要关注了Otter,搭建这个环境算是费劲了心思,在之前准备的过程中发现GitHub上面的说明文档和实际的操作还有一些差距,有些过程也是一再中断,我不由得发出感慨,能够快速高效的尝试开源项目也是一种技术幸福感所在。

Otter英文名是水獭,在跨机房的数据同步中使用比较广泛,它是一个web的管理服务,核心是Manger模块。当启动一个Manger服务时,可以访问它的管理界面来实现Channel、Pipleline 、数据源、数据表、zookeeper集群、主备配置。Otter就是做Canal拿到binlog日志之后做消费处理,对目标数据库进行增量日志消费,实现数据搬运工作。

听起来有点晕,其实我的需求是能够实现跨机房的数据复制(单向,双向),但是一下子带进来一堆概念,让初学的人有些不知所措。

我来做一些通俗的解释,首先这个项目是另外一个项目的衍生版本,那个项目就是canal,canal可以理解为一个虚拟的MySQL Slave,它可以向Master发送dump请求,然后dump根据需要推送相应的binlog,Otter算是把canal融入了一个完整的技术体系,在这里面canal可以理解为Otter体系中的一个组件。

而跨机房的数据复制(尤其是双向复制),除了数据延迟,对于数据一致性方面的解决方案就需要严谨的多,在这里Otter有一套检验机制,而在这个过程中为了改进效率和设计的完整度,也是通过引入一些其他的组件或者概念,比如Channel,Pipeline等。

Otter项目的架构如下:

看这个架构图就知道里面的东西不少。如果想几个小时把它搞定还是有些难度的,所以我们会分成几篇来说。

首先是对于环境的规划,和架构设计是紧密相关的,我们需要一台独立的管理节点,管理节点可以管理多套MySQL环境,每套环境上面有独立的Otter Node节点,同时配置了Zookeeper,会由Otter统一管理。

对于服务器侧,可以根据需要来进行测试,比如我们选择两台服务也是可以的,可以把Manage和Node共同部署在一台机器上面,对于服务器的IP很可能有公网IP和内网IP,可以根据需求情况进行配置。

Otter比较有意思的是他提供了一套WEB管理页面,在部署Manage之后就可以进入WEB页面进行配置管理了。

整个Otter的配置基本都是页面化配置。

当然开始接触的时候还是有些不适应,而且本身这个WEB页面不可定制,本身也没有太多的改进空间了。

首先是添加机器管理配置,添加了相应的Zookeeper集群,包括源端,目标端。

然后添加Node节点,整个这样的步骤有差不多10个页面。

未完待续

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档