-
otter
2019-01-14 10:44:34otter https://github.com/alibaba/otter 同样是阿里巴巴开源的数据同步工具 定位: 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统 注意:基于cannal 原理 ...otter
https://github.com/alibaba/otter
同样是阿里巴巴开源的数据同步工具
定位: 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统注意:基于cannal
原理
-
基于Canal开源产品,获取数据库增量日志数据。 什么是Canal, 请点击
-
典型管理系统架构,manager(web管理)+node(工作节点)
a. manager运行时推送同步配置到node节点
b. node节点将同步状态反馈到manager上
-
基于zookeeper,解决分布式状态调度的,允许多node节点之间协同工作.
说白了 cannal拿到binlog日志以后,处理完以后, 就交给这货,这货有管理配置页面。还做了一些关于可靠性和速度的考虑。
使用
(注意如果使用docker安装的机子上有mysql,会启动不了)
参考issue https://github.com/alibaba/otter/issues/695
因此在下面提供手动安装的方式
拉docker镜像
docker pull canal/otter-all
创建otter目录
cd /usr/local
mkdir otter
进入otter目录,运行otter镜像
curl -fsSL https://raw.githubusercontent.com/alibaba/otter/master/docker/run.sh | bash
手动安装
####manager安装
https://github.com/alibaba/otter/wiki/Manager_Quickstart-
java环境 mysql等 初始化otter需要的表等 自行安装
-
使用docker启动zookeeper(otter依赖于zookeeper做集群管理)
docker run --name otter-zookeeper -p 2181:2181 --restart always -d zookeeper
3.下载otter manager https://github.com/alibaba/otter/releases 解压缩 修改配置 然后启动 等参考官方手册md文档
node安装
https://github.com/alibaba/otter/wiki/Node_Quickstart
官方文档已经可以满足需求了 -
-
Otter
2019-01-14 09:05:12https://blog.csdn.net/wudufeng/article/details/78688240展开全文 -
otter基于docker安装
2020-07-22 13:17:08名称:otter ['ɒtə(r)] 译意: 水獭,数据搬运工 语言: 纯java开发 定位: 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统 工作原理 原理描述:...项目介绍
名称:otter ['ɒtə(r)]
译意: 水獭,数据搬运工
语言: 纯java开发
定位: 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统
工作原理
原理描述:
1. 基于Canal开源产品,获取数据库增量日志数据。 什么是Canal, 请点击
2. 典型管理系统架构,manager(web管理)+node(工作节点)
a. manager运行时推送同步配置到node节点
b. node节点将同步状态反馈到manager上
3. 基于zookeeper,解决分布式状态调度的,允许多node节点之间协同工作.
安装
mysql
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=数据库密码 -d mysql:5.7.19 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci;
新建otter数据库
ZK
docker run -d -p 2181:2181 --name=zookeeper --privileged zookeeper
otter-manager
docker run --name otter-manager -d -p 8080:8080 -p 1099:1099 -e IP=当前服务器IP -e ZK_IP=ZK地址 -e DB_IP=数据库IP:3306 -e DB_USER=数据库账号 -e DB_PASSWD=数据库密码 aeert/otter-manager:4.2.18
访问 http://当前服务器IP:8080 账号密码:admin/admin
NODE
1. otter node会受otter manager进行管理,所以需要预先安装otter manager,参见:Otter Manager Quickstart.
2. 完成manager安装后,需要在manager页面为node定义配置信息,并生一个唯一id.
a. 首先访问manager页面的机器管理页面,点击添加机器按钮
几点说明:- 机器名称:可以随意定义,方便自己记忆即可
- 机器ip:对应node节点将要部署的机器ip,如果有多ip时,可选择其中一个ip进行暴露. (此ip是整个集群通讯的入口,实际情况千万别使用127.0.0.1,否则多个机器的node节点会无法识别)
- 机器端口:对应node节点将要部署时启动的数据通讯端口,建议值:2088
- 下载端口:对应node节点将要部署时启动的数据下载端口,建议值:9090
- 外部ip :对应node节点将要部署的机器ip,存在的一个外部ip,允许通讯的时候走公网处理。
- zookeeper集群:为提升通讯效率,不同机房的机器可选择就近的zookeeper集群.
node这种设计,是为解决单机部署多实例而设计的,允许单机多node指定不同的端口
b. 机器添加完成后,跳转到机器列表页面,获取对应的机器序号nid
通过这两部操作,获取到了node节点对应的唯一标示,称之为node id,简称:nid. 记录该nid,后续启动nid时会使用
3. node节点进行跨机房传输时,会使用到HTTP多线程传输技术,目前主要依赖了aria2c做为其下载客户端,后续会推出java版本.
a. aria2 官方首页: http://aria2.sourceforge.net/
b. 下载页面: http://sourceforge.net/projects/aria2/files/stable/
当前测试过多个HTTP多线程下载客户端,比如wget,curl,axel,oget,proz,aria2c,测试结果aria2c下载效率最快,基本可以压满网卡.
注意:下载完成或者编译完成后,将对应的aria2c包加入到PATH路径即可.
安装
获取到node的ID后执行
docker run --name otter-node -d -p 2088:2088 -p 2090:2090 -p 9090:9090 -e id=node的ID -e address=当前服务器IP aeert/otter-node:4.2.18
测试
新建数据库01、02,注意数据库已开启binlog,并且binlog_format为ROW
搭建一个数据库同步任务,源数据库ip为:10.20.144.25,目标数据库ip为:10.20.144.29. 源数据库已开启binlog,并且binlog_format为ROW.
mysql> show variables like '%binlog_format%'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | binlog_format | ROW | +---------------+-------+
2. 数据同步精确到一张表进行测试,测试的表名为test.example,简单包含两个子段,测试过程中才创建.
3. 配置完成后,手动在源库插入数据,然后快速在目标库进行查看数据,验证数据是否同步成功.
-------
视频中的演示文本:
CREATE TABLE `test`.`example` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(32) COLLATE utf8_bin DEFAULT NULL , PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; insert into test.example(id,name) values(null,'hello'); ----- Otter QuickStart 如何配置一个任务 ----- 操作步骤: 1. 添加数据库 a. 源库 jdbc:mysql://10.20.144.25:3306 b. 目标库 jdbc:mysql://10.20.144.29:3306 2. 添加canal a. 提供数据库ip信息 3. 添加同步表信息 a. 源数据表 test.example b. 目标数据表 test.example 4. 添加channel 5. 添加pipeline a. 选择node节点 b. 选择canal 6. 添加同步映射规则 a. 定义源表和目标表的同步关系 7. 启动 8. 测试数据
参考官网文档:alibaba/otter
QQ交流群号:132381997
-
otter 资料PDF(深入理解otter (偏向技术层面)、otter使用介绍 (偏向使用层面) )
2020-10-13 14:46:42otter 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统。 深入理解otter (偏向技术层面).pdf otter使用介绍 (偏向使用层面) .pdf -
Otter小试
2019-08-24 23:59:46这是学习笔记的第2080篇文章 之前因为机房多活的需要关注了Otter,搭建这个环境算是费劲了心思,在之前准备的过程中发现GitHub上面的说明文档和实际的操作还有...这是学习笔记的第 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个页面。
未完待续
-
otter安装之Otter Manager安装
2019-07-19 20:55:04otter-manager作为otter同步的管理台,可以对zookeeper,otter-node进行管理 1.下载安装包,下载链接(需要积分或金币下载): https://download.csdn.net/download/u014642915/11389132 2.下载otter-manager库... -
Otter配置教程,otter从入门配置到高级配置
2018-08-31 15:26:29Otter配置教程,otter从入门配置到高级配置,适合入门学习以及配置参考 -
阿里巴巴B2B公司,因为业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出了杭州和美国异地机房的需求,同时为了提升用户体验,整个机房的架构为双A,两边均可写,由此诞生了otter这样一个产品。...
-
otter搭建
2019-06-04 16:43:48初始化otter http://域名/system_reduction.htm 问题1: 使用mysql 5.7版本,下载otter-manager-schema.sql文件,导入出错 ERROR 1067 (42000) at line 5: Invalid default value for 'GMT_CREATE' 解决方法: 修改.... -
Otter详解
2018-11-25 14:46:04otter girthub链接: https://github.com/alibaba/otter 整体架构 子模块解释 zooKeeper 分布式一致性协调服务,主要用来调度配置好的node模块。 manager 管理中心,用来配置同步信息,接收node模块发来的状态... -
otter4使用介绍
2018-11-30 09:40:22阿里开源工具otter使用介绍,非常详细,详细介绍otter的使用配置等 -
深入理解otter,利用OTTER实现准实时ETL、数据同步
2018-07-04 09:42:39深入理解otter,利用OTTER实现准实时ETL、数据同步 1. 中美同步需求 2. otter架构&设计 如何解决"差"网络 如何避免双向回环 如何处理数据一致性 如何高效同步数据 如何高效同步文件 如何支持系统HA 如何处理特殊... -
Added otter-browser
2020-12-09 13:33:04- [ ] <a href="#crh-comment-Pull%2070c16f24c55da8d00e504c66f13b3f62d8eefc1b%20otter-browser/snapcraft.yaml%2026"></a> ..." /></a> Can you change this to <code>desktop-qt5</code> instead?... -
otter使用
2018-10-22 18:23:00参考网址:https://github.com/alibaba/otter/wiki/QuickStart 参考网址: ... 1.zookeeper启动 参见Zookpeer集群节点 2. 创建otter manager的表数据 ... -
otter实现数据同步,otter manger的安装
2019-07-11 11:00:48otter node依赖于zookeeper进行分布式调度,需要安装一个zookeeper节点或者集群.zookeeper的安装可以参考我之前写的另外一篇博客docker-compose 部署zk和kafka otter环境搭建步骤:docker安装参考官网,不过我尝试... -
alibaba-otter
2016-09-30 20:31:37阿里巴巴B2B公司,因为业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出了杭州和美国异地机房的需求,同时为了提升用户体验,整个机房的架构为双A,两边均可写,由此诞生了otter这样一个产品。... -
linux安装otter需要用到的安装包,与otter的介绍
2018-07-03 15:02:51压缩包里面有:aria2-1.17.1.tar.gz,jdk-7u79-linux-x64.tar.gz,manager.deployer-4.2.13.tar.gz,node.deployer-4.2.13.tar.gz,zookeeper-3.4.5-cdh4.3.0.tar.gz,深入理解otter.pptx,otter4使用介绍.pptx -
otter-4.2.13
2017-10-26 15:13:34包括manager.deployer-4.2.13、node.deployer-4.2.13和otter-manager-schema.sql(数据库文件),配置参考... -
Otter简介
2017-03-01 18:02:42Otter它是一个数据同步解决方案,可以解决本地跨网络跨机房跨地域的数据同步问题,并且拥有可观的效率,web管理工具等特点,而且背景也很优秀,据说阿里B2B内部的本地/异地机房的同步需求基本全上了 otter。 Otter项目... -
otter部署
2017-11-17 18:02:52otter部署 环境 IP:10.10.6.171 部署:mysql源库 IP:10.10.6.172 部署:mysql目标库 IP:10.10.6.173 部署:zookeeper,manager,node,canal (也都部署到源库服务器上) 由于otter进行数据库同步,目前仅... -
otter学习 | otter 基本介绍
2018-03-25 15:21:58名称:otter [‘ɒtə(r)] 译意: 水獭,数据搬运工 语言: 纯java开发 定位: 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库。 二、工作原理 原理描述: 基于Canal开源... -
otter快速开始
2019-06-27 17:17:30Otter otter是一款基于Java且免费、开源基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库的解决方案。 官方描述: 阿里巴巴B2B公司,因为业务的特性,卖家主要集中在国内,买家主要... -
otter学习 | otter_node 安装配置
2018-03-25 15:17:541、otter node会受otter manager进行管理,所以需要预先安装otter manager。 参见:otter_manager 安装配置(快速开始) 2、完成manager安装后,需要在manager页面为node定义配置信息,并生一个唯一id a. 如果... -
otter全量同步
2019-09-01 10:41:00步骤一:在otter配置otter同步的库/表。 配置好channel—>pipeline—>映射关系列表,canal 步骤二:执行以下sql /* 供 otter 使用, otter 需要对 retl.* 的读写权限,以及对业务表的读写权限 1. ... -
otter安装
2016-12-08 16:30:49译意: 水獭,数据搬运工 语言: 纯java开发 定位: 基于数据库增量日志解析,准实时同步到本机房或异地机房的...otter安装需要三台机器,我实现的是两台机器之间的Mysql数据库同步,即双写同步,zookeeper集群。
-
Pytorch学习笔记之模型的创建
-
webcrawlingNotes.pdf
-
add.zip vue 三级联动
-
php实现的简单问卷调查系统
-
Soul网关源码学习(9)- 请求解析 GlobalPlugin
-
C++异步串口通信
-
jdk-1.8-x64.zip
-
报警告 python RuntimeWarning: invalid value encountered in cos
-
Linux部署环境搭建(JAVA项目).doc
-
狂雨小说采集规则1.txt
-
数据类型转换、运算符、方法入门
-
SDVideoCamera:仿抖音(视频录制、视频剪辑、视频合成)
-
pyechart数据可视化
-
基于solidworks中的stewart平台建模
-
【数据分析-随到随学】数据分析建模和预测
-
SubstancePainter插件开发-基础入门
-
Centos6.5安装Oracle11g.doc
-
Nepxion Discovery(1) 全链路蓝绿发布
-
3.选队长_easy_20210124
-
WGS坐标转国测GCJ奥维的VB源码