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管理工具,那么谢谢大家的支持我们下节再见!
注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!
http://blog.csdn.net/u011142688/article/details/52046928
相关推荐
Otter Browser 水獭浏览器 水獭浏览器 - 模仿opera12界面, 基于qt5的webkit浏览器. 等于个人制作山寨版Safari, 支持二代半引擎, 苹果WebEngine/谷歌Blink. 作者: 波兰 Emdek 恩德克 代码可用,本人亲测,qt5.5+vs...
otter-manager v4.2.17版本的数据库脚本,创建好数据库之后执行文件中的sql即可
1. **测试用例**:otter-grader允许创建测试用例,这些用例可以检查学生代码的输出是否符合预期。测试用例可以包括输入值和期望的输出,以确保代码的正确性。 2. **自动评分**:库会根据测试用例的结果自动计算分数...
otter-manager-schema.sql 初始化...................................................................
"Otter-Node" 是一个专门用于分布式数据同步的组件,尤其在大数据处理领域中扮演着重要的角色。这个名字可能指的是 Apache Otter 或是其他类似工具的节点组件,它负责在不同的数据存储系统之间进行实时或近实时的...
资源分类:Python库 所属语言:Python 资源全名:otter-grader-0.0.26.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
Otter 是一个强大的 MySQL 日志级同步工具,它主要用于实现数据库之间的实时数据迁移或复制。以下是对 Otter 使用和维护的详细说明: 1. **Manager 登录与配置**: Otter 的管理平台通过 Manager 组件进行配置和...
【基于QT开发的浏览器源代码(otter-browser)】是一个开放源码的项目,它使用了流行的跨平台应用程序开发框架Qt来构建一个功能完备的网络浏览器。Qt是一个强大的C++库,提供了丰富的图形用户界面(GUI)工具和系统...
资源分类:Python库 所属语言:Python 资源全名:odoo_otter-0.0.2-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
资源分类:Python库 所属语言:Python 资源全名:yoshi-otter-1.3.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
包括manager.deployer-4.2.13、node.deployer-4.2.13和otter-manager-schema.sql(数据库文件),配置参考...
Otter配置教程,otter从入门配置到高级配置,适合入门学习以及配置参考
Otter 是阿里巴巴开源的分布式数据库同步系统,旨在解决中美异地机房的数据库同步问题。该系统可以实现跨机房的数据库同步,确保数据的一致性和高可用性。 系统架构 Otter 的系统架构主要包括三个部分:Manager ...
【阿里巴巴开源项目:分布式数据库同步系统 Otter】是专为解决跨国、异地机房数据库同步问题而设计的高效工具。该项目起源于阿里巴巴 B2B 公司的需求,由于其业务特性,需要在国内杭州和美国之间建立双活机房,以...
Otter 是阿里巴巴开源的一款强大的数据同步工具,特别适合在分布式环境中进行实时的数据迁移和同步。它解决了传统数据库主从复制的局限性,提供了更高效、灵活的解决方案。本篇文章将详细介绍Otter的主要功能、架构...
在`otter-master`这个压缩包中,你将找到Otter的源代码,包括了项目的结构、模块划分、核心类的实现等。通过阅读源码,你可以了解到以下内容: 1. **代码结构**:了解Otter的模块划分,如manager、node、common、...
otter第一版本可追溯到04~05年,此次外部开源的版本为第4版,开发时间从2011年7月份一直持续到现在,目前阿里巴巴B2B内部的本地/异地机房的同步需求基本全上了otter。 目前同步规模: 同步数据量6亿 文件同步1.5TB...
Otter Grader是由加州大学伯克利分校的数据科学教育计划开发的轻量级模块化开源自动平地机。 它旨在通过与任何讲师的作业分配和收集管道兼容的方式来抽象化自动分级内部结构,从而与任何规模的班级一起使用。 Otter...
Otter4是一款由阿里巴巴开源的高性能数据同步工具,主要用于解决不同数据库间的数据同步问题,支持MySQL和Oracle数据库的互相同步,包括单向同步、双向同步以及无冲突变更等多种同步模式。其主要用途包括异地机房的...