文档章节

Otter-入门篇1(阿里开源项目Otter介绍)

喵了_个咪
 喵了_个咪
发布于 2016/07/27 16:08
字数 1090
阅读 7551
收藏 182

#Otter-入门篇1(阿里开源项目Otter介绍)#

##前言##

呜啦啦啦啦!今天笔者又来开坑了,这次开坑的对象呢是阿里的一个开源项目Otter,Otter它是一个数据同步解决方案,可以解决本地跨网络跨机房跨地域的数据同步问题,并且拥有可观的效率,web管理工具等特点,而且背景也很优秀,据说阿里B2B内部的本地/异地机房的同步需求基本全上了otter。

附上:

喵了个咪的博客:w-blog.cn

Otter项目地址:https://github.com/alibaba/otter

Otter文档地址:https://github.com/alibaba/otter/wiki

##1. Otter是什么##

Ottter是由阿里爸爸开源的一个数据同步产品,它的最初的目的是为了解决跨国异地机房双A架构,两边可写的场景,开发时间从2011年7月份一直持续到现在,目前阿里巴巴B2B内部的本地/异地机房的同步需求基本全上了Otter。

Otter基于数据库增量日志解析,支持mysql/oracle数据库进行同步,在最新的v4.2.13已经支持mysql5.7以及阿里云提供的RDS数据库(使用RDS童鞋的福音)

###工作原理

下图是关于Otter运行原理图:

更具上图里面关键几个元素进行介绍

  • db : 数据源以及需要同步到的库
  • Canal : 用户获取数据库增量日志
  • manager : 配置同步规则设置数据源同步源等
  • zookeeper : 协调node进行协调工作
  • node : 负责任务处理处理接受到的部分同步工作

###特性

笔者总结了一下Otter的一些特性:

  • 使用纯JAVA开发,占时资源比较高
  • 基于Canal获取数据库增量日志,Canal是阿里爸爸另外一个开源产品
  • 使用manager(web管理)+node(工作节点),manager负责配置监控,node负责处理任务
  • 基于zookeeper,解决分布式状态调度的,允许多node节点之间协同工作
  • 使用aria2多线程传输技术,对网络依赖带宽依赖较低

##2. Otter能解决什么问题##

技术最终是解决业务问题的,不然还是耍流氓!我们来一同看看 Otter 到底能解决我们在开发中遇到的那些场景中的问题

###异构库同步

Otter支持从Mysql同步到Mysql/oracle,我们可以把mysql同步到oracle

###单机房同步

可以作为一主多从同步方案,对于单机房内网来说效率非常高,还可以做为数据库版本升级,数据表迁移,二级索引等这类功能

###异地机房同步

异地机房同步可以说是Otter最大的亮点之一,可以解决国际化问题把数据从国内同步到国外来提供用户使用,在国内场景可以做到数据多机房容灾

###双向同步

双向同步是在数据同步中最难搞的一种场景,Otter可以很好的应对这种场景,Otter有避免回环算法和数据一致性算法两种特性,保证双A机房模式下,数据保证最终一致性

###文件同步

站点镜像,进行数据复制的同时,复制关联的图片,比如复制产品数据,同时复制产品图片

##3. 总结##

今天我们简单的了解了一下关于Otter是一个什么样子的软件,它可以解决什么问题,下一节将会介绍如何搭建zookeeper和manager管理工具,那么谢谢大家的支持我们下节再见!

注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!

© 著作权归作者所有

共有 人打赏支持
喵了_个咪
粉丝 245
博文 140
码字总数 183725
作品 4
杨浦
技术主管
加载中

评论(24)

喵了_个咪
喵了_个咪

引用来自“bendise”的评论

我们有需求从oracle到mysql能实现吗?
有一个叫做 yugong 的工具可以实现 和 otter 是基本一样的 也是阿里开源的
b
bendise
我们有需求从oracle到mysql能实现吗?
喵了_个咪
喵了_个咪

引用来自“why-mao”的评论

使用了,业务过程中丢数据太严重
我后期 具体场景进行测试 用的童鞋也比较多 我试过单向还是很稳定的
why-mao
why-mao
使用了,业务过程中丢数据太严重
喵了_个咪
喵了_个咪

引用来自“德莫罗”的评论

这东西看起来不明觉厉啊
其实要实际用到 才能了解它的价值
喵了_个咪
喵了_个咪

引用来自“哈库纳”的评论

双向同步, 冲突怎么解决?
otter 会有双向同步机制 和中间表 到后面会深入说明
德莫罗
德莫罗
这东西看起来不明觉厉啊
哈库纳
哈库纳
双向同步, 冲突怎么解决?
喵了_个咪
喵了_个咪

引用来自“yangjh_chs”的评论

跟alibaba的#yugong#有什么区别?
要怎么说呢 这其实是一套系列软件 解决不同的问题 一个是从 mysql 增量 一个是oracle 增量 可以理解为两个分支底层技术其实差不多
数据同步组件otter环境搭建

一、otter介绍 部分说明引用阿里otter项目的wiki 。阿里otter工具地址:https://github.com/alibaba/otter/wiki otter为阿里的一款增量数据同步工具,基于数据库增量日志解析,准实时同步到本...

麦穗
01/19
0
0
Otter-入门篇2(Manager安装配置)

上一节已经简单介绍了Otter的基本信息,本节我们就来开准备搭建一个我们自己的Otter环境,因为一个Otter需要Manage+node+数据库还有很多的依赖,本节我们先来搭建Otter的管理服务器Manager. 附上...

喵了_个咪
2016/07/28
1K
3
Otter-入门篇3(Node搭建)

哈咯大家好呀!今天是对otter准备的最后一个流程,配置好node,并且吧manager,zookeeper和node组合起来形成一个完整可以进行Mysql同步任务的服务,话不多说我们今天就来来事准备工作的最后一步N...

喵了_个咪
2016/08/08
513
0
有没有人研究过Canal基于其它方式的配置

canal提供两种方式配置,spring和manager,spring是基于配置文件的,也是现在在百度上百度出来的几乎所有关于canal文章中描述的。但是,阿里自己并不是使用这种方式,spring只是为了开源而额...

尚浩宇
2017/03/16
40
0
Otter-入门篇4(单向同步实践)

在前几节我们已经做好了关于otter的准备工作,配置好了zookeeper,manage和node,本节就来完成otter第一个实际功能,单相数据同步.单向数据同步可以解决跨机房主从的问题,所有读操作都能从本地的...

喵了_个咪
2016/08/18
761
4

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周日乱弹 —— 种族不同,禁止交往

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小小编辑:推荐歌曲《苏菲小姐》- 鱼果 《苏菲小姐》- 鱼果 手机党少年们想听歌,请使劲儿戳(这里) @貓夏:下大雨 正是睡觉的好时候 临睡前...

小小编辑
今天
226
6
Python 搭建简单服务器

Python动态服务器网页(需要使用WSGI接口),基本实现步骤如下: 1.等待客户端的链接,服务器会收到一个http协议的请求数据报 2.利用正则表达式对这个请求数据报进行解析(请求方式、提取出文...

代码打碟手
今天
1
0
Confluence 6 删除垃圾内容

属性(profile)垃圾 属性垃圾的定义为,一个垃圾用户在 Confluence 创建了用户,但是这个用户在自己的属性页面中添加了垃圾 URL。 如果你有很多垃圾用户在你的系统中创建了属性,你可以使用...

honeymose
今天
1
0
qduoj~前端~二次开发~打包docker镜像并上传到阿里云容器镜像仓库

上一篇文章https://my.oschina.net/finchxu/blog/1930017记录了怎么在本地修改前端,现在我要把我的修改添加到部署到本地的前端的docker容器中,然后打包这个容器成为一个本地镜像,然后把这...

虚拟世界的懒猫
今天
1
0
UML中 的各种符号含义

Class Notation A class notation consists of three parts: Class Name The name of the class appears in the first partition. Class Attributes Attributes are shown in the second par......

hutaishi
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部