文档章节

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

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

#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管理工具,那么谢谢大家的支持我们下节再见!

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

© 著作权归作者所有

共有 人打赏支持
喵了_个咪
粉丝 317
博文 150
码字总数 199180
作品 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
Otter-入门篇4(单向同步实践)

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

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

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

尚浩宇
2017/03/16
105
0

没有更多内容

加载失败,请刷新页面

加载更多

Caffe(二)-Python-自定义网络

这里我们用一个例子先来体验一下 首先定义一下我们的环境变量 $PYTHONPATH,我这儿是Windows开发环境,至于Windows Caffe怎么编译由读者自己下去搞定 我使用的控制台是 Windows PowerShell 添...

Pulsar-V
34分钟前
2
0
ActiveMQ从入门到精通(二)之可靠性机制

ActiveMQ的可靠性机制 缘由( 确认JMS消息) 只要消息被确认之后,才认为消息被成功消费了。消息的成功消费包括三个阶段:客户端接收消息、客户端处理消息以及客户端确认消息。在事务性会话中...

一看就喷亏的小猿
41分钟前
0
0
源码分析 Mybatis 的 foreach 为什么会出现性能问题

背景 最近在做一个类似于综合报表之类的东西,需要查询所有的记录(数据库记录有限制),大概有1W条记录,该报表需要三个表的数据,也就是根据这 1W 个 ID 去执行查询三次数据库,其中,有一...

TSMYK
今天
7
0
IC-CAD Methodology企业实战之openlava

在云计算解决安全问题并成为IC界主流运算平台之前,私有的服务器集群系统仍然是各大IC公司的计算资源平台首选。 现在主流的服务器集群管理系统包括lsf,openlava,SkyForm,三者都属于lsf一系...

李艳青1987
今天
5
0
http response stream 字节流 接收与解码

在接收图片、音频、视频的时候,需要用到二进制流。 浏览器会发给客户端 字节Byte流,一串串的发过来_int8格式 -128~127(十进制),也就是8bit(位)。 客户端接收的时候,对接收到的字节收集,...

大灰狼wow
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部