Otter-入门篇1(阿里开源项目Otter介绍)
Otter-入门篇1(阿里开源项目Otter介绍)
喵了_个咪 发表于1年前
Otter-入门篇1(阿里开源项目Otter介绍)
  • 发表于 1年前
  • 阅读 7036
  • 收藏 179
  • 点赞 8
  • 评论 24

华为云·免费上云实践>>>   

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

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

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

共有 人打赏支持
粉丝 188
博文 103
码字总数 130367
作品 3
评论 (24)
红烧土豆
42
chw8219
看着感觉非常牛
喵了_个咪

引用来自“红烧土豆”的评论

42
多谢支持 81
喵了_个咪

引用来自“chw8219”的评论

看着感觉非常牛
确实是很给力的东西,阿里爸爸大法好
jiucheng
42
okk
79
紫电清霜
喵了个咪,楼主威武~
喵了_个咪

引用来自“紫电清霜”的评论

喵了个咪,楼主威武~
83 多谢支持
牛头人之怒
开源版不支持从ORACLE同步到ORACLE哎~
喵了_个咪

引用来自“牛头人之怒”的评论

开源版不支持从ORACLE同步到ORACLE哎~
对的 这个取决于 Canal 或去增量的功能暂时不支持 Oracle 所以无法从 Oracle -> Oracle
前面有人
87
独孤青冥
开源版本并不支持到oracle,仅支持mysql或oracle到mysql。。另外,集群还需要其他工具配合使用。。
盛夏的白菜土豆西红柿

引用来自“红烧土豆”的评论

42
42
yangjh_chs
跟alibaba的#yugong#有什么区别?
喵了_个咪

引用来自“yangjh_chs”的评论

跟alibaba的#yugong#有什么区别?
要怎么说呢 这其实是一套系列软件 解决不同的问题 一个是从 mysql 增量 一个是oracle 增量 可以理解为两个分支底层技术其实差不多
哈库纳
双向同步, 冲突怎么解决?
德莫罗
这东西看起来不明觉厉啊
喵了_个咪

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

双向同步, 冲突怎么解决?
otter 会有双向同步机制 和中间表 到后面会深入说明
喵了_个咪

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

这东西看起来不明觉厉啊
其实要实际用到 才能了解它的价值
×
喵了_个咪
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: