学习
实践
活动
工具
TVP
写文章

Otter小试

Otter英文名是水獭,在跨机房的数据同步中使用比较广泛,它是一个web的管理服务,核心是Manger模块。 Otter就是做Canal拿到binlog日志之后做消费处理,对目标数据库进行增量日志消费,实现数据搬运工作。 算是把canal融入了一个完整的技术体系,在这里面canal可以理解为Otter体系中的一个组件。 首先是对于环境的规划,和架构设计是紧密相关的,我们需要一台独立的管理节点,管理节点可以管理多套MySQL环境,每套环境上面有独立的Otter Node节点,同时配置了Zookeeper,会由Otter统一管理 Otter比较有意思的是他提供了一套WEB管理页面,在部署Manage之后就可以进入WEB页面进行配置管理了。 ? 整个Otter的配置基本都是页面化配置。 ?

57810

otter安装 原

配置修改 ## otter manager domain name #修改为正确访问ip,生成URL使用 otter.domainName = 127.0.0.1 ## otter manager = hello ## otter communication port otter.communication.manager.port = 1099 ## otter communication = 90000 ## otter arbitrate connect manager config otter.manager.address = ${otter.domainName}:${otter.communication.manager.port 二、node安装 环境准备 1. otter node会受otter manager进行管理,所以需要预先安装otter manager,参见:Otter Manager Quickstart. 2. /node ## otter node dir otter.htdocs.dir = ${otter.nodeHome}/htdocs otter.download.dir = ${otter.nodeHome

56030
  • 广告
    关闭

    11.11云上盛惠

    万元礼包限时领取,百款云产品特惠助力上云,云服务器2核2G低至4.2元/月

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    聊聊otter的NodeTask

    序 本文主要研究一下otter的NodeTask mysql-binlog-servers-at-bookingcom-15-638.jpg NodeTask otter/node/common/src /main/java/com/alibaba/otter/node/common/config/model/NodeTask.java public class NodeTask implements /shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/pipeline/Pipeline.java public Pipeline定义了id、channelId、name、description、selectNodes、extractNodes、loadNodes、pairs、parameters等属性 StageType otter /shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/enums/StageType.java public

    24900

    聊聊otter的NodeTask

    序 本文主要研究一下otter的NodeTask NodeTask otter/node/common/src/main/java/com/alibaba/otter/node/common/config ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE); } } NodeTask定义了pipeline、stage、event属性 Pipeline otter /shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/pipeline/Pipeline.java public Pipeline定义了id、channelId、name、description、selectNodes、extractNodes、loadNodes、pairs、parameters等属性 StageType otter /shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/enums/StageType.java public

    20230

    Canal+Otter - 前日篇(2)

    数据库同步中间件Canal+Otter - 前日篇(2) MySQL+InnoDB架构体系 ? MySQL体系前端接受连接,并提供多种API,连接池化可重用。

    31530

    Canal+Otter - Canal篇(1)

    之后的otter最新版的默认内置canal版本为1.0.20,最好在这里自己编译下并替换。 ; import com.alibaba.otter.canal.client.CanalConnectors; import com.alibaba.otter.canal.common.utils.AddressUtils ; import com.alibaba.otter.canal.protocol.Message; import com.alibaba.otter.canal.protocol.CanalEntry.Column ; import com.alibaba.otter.canal.protocol.CanalEntry.Entry; import com.alibaba.otter.canal.protocol.CanalEntry.EntryType ; import com.alibaba.otter.canal.protocol.CanalEntry.EventType; import com.alibaba.otter.canal.protocol.CanalEntry.RowChange

    1K20

    Canal+Otter - 前日篇(1)

    数据库同步中间件Canal+Otter - 前日篇(1) 启 - 我们为什么需要数据库跨机房同步 随着业务的增长和技术的演进,在应用架构上,我们经历了单一用用架构->垂直应用架构->分布式应用架构的发展 转 - 更合适的同步方案Canal+Otter 早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。 +Otter 利用Canal+Otter,我们可以实现: 1.更灵活的架构,多机房同步可以这么做: ? 3.Canal+Otter可以实现一个表一线程多个表多线程的同步,速度更快。同时会压缩简化要传输的binlog,减少网络压力。 4.双A机房同步. 目前mysql的M-M部署结构,不支持解决数据的一致性问题,基于otter的双向复制+一致性算法,可一定程度上解决这个问题,实现双A机房.

    65310

    Otter介绍及(Manager)安装「建议收藏」

    Otter 简单介绍 名称:otter [‘ɒtə(r)] 译意: 水獭,数据搬运工 语言: 纯java开发 定位: 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库 /releases 下载 manager.deployer-xxx.tar.gz 下载好后上传至服务器 mkdir ~/otter #创建otter目录 tar zxvf manager.deployer -4.2.18.tar.gz -C ~/otter/manager-deployer/ #解压 2)创建otter数据库(这里用的是mysql数据库) 执行脚本otter manager sql ( 内容末附上) 3) 修改otter.properties otter.domainName manage管理界面IP地址 otter.port 端口号 otter.database.driver.class.name 32312 IF NOT EXISTS*/ `otter` /*!

    16550

    Otter-入门篇3(Node搭建)

    Otter-入门篇3(Node搭建) ? 前言 哈咯大家好呀! 今天是对otter准备的最后一个流程,配置好node,并且吧manager,zookeeper和node组合起来形成一个完整可以进行Mysql同步任务的服务,话不多说我们今天就来来事准备工作的最后一步Node 附上: 喵了个咪的博客:w-blog.cn Otter项目地址:https://github.com/alibaba/otter Otter文档地址:https://github.com/alibaba /otter/wiki 1. 安装配置aria2 我们在介绍otter的特性里面有提及到aria2,它是一个文件通道来保证需要同步的数据通过极快的速度同步到需要同步的服务器上 cd /app/install/ tar zxvf aria2

    1.7K130

    Otter-入门篇4(单向同步实践)

    Otter-入门篇4(单向同步实践)# ? 前言## 在前几节我们已经做好了关于otter的准备工作,配置好了zookeeper,manage和node,本节就来完成otter第一个实际功能,单相数据同步.单向数据同步可以解决跨机房主从的问题,所有读操作都能从本地的从库进行操作 ,而写可以通过外网连接到主服务器进行写入,并且通过otter同步到各个从服务器,可以很好地应对多机房读业务偏多的场景,那么话不多说就开始本节的正文吧! 附上: 喵了个咪的博客:w-blog.cn Otter项目地址:https://github.com/alibaba/otter Otter文档地址:https://github.com/alibaba /otter/wiki 1.

    1.4K100

    数据同步利器-otter的搭建使用说明「建议收藏」

    Otter都能为你解决。 二、官方安装文档 https://github.com/alibaba/otter/wiki/Manager_Quickstart https://github.com/alibaba/otter/ 初始化otter manager系统表:https://raw.github.com/alibaba/otter/master/manager/deployer/src/main/resources/sql 整个otter架构依赖了zookeeper进行多节点调度,所以需要预先安装zookeeper,不需要初始化节点,otter程序启动后会自检. 配置修改 vi ~/otter/conf/otter.properties # node的安装目录 otter.nodeHome = ${user.dir}/node

    18420

    Otter-入门篇2(Manager安装配置)

    Otter-入门篇2(Manager安装配置) ? 前言 上一节已经简单介绍了Otter的基本信息,本节我们就来开准备搭建一个我们自己的Otter环境,因为一个Otter需要Manage+node+数据库还有很多的依赖,本节我们先来搭建Otter的管理服务器 附上: 喵了个咪的博客:w-blog.cn Otter项目地址:https://github.com/alibaba/otter Otter文档地址:https://github.com/alibaba /otter/wiki ##1. source /tmp/manager/otter-manager-schema.sql 修改vim conf/otter.properties 配置文件 ## otter manager domain

    884110

    聊聊OtterLauncher

    序 本文主要研究一下OtterLauncher OtterLauncher otter/node/deployer/src/main/java/com/alibaba/otter/node/deployer public void run() { try { logger.info("INFO ## stop the otter catch (Throwable e) { logger.warn("WARN ##something goes wrong when stopping Otter catch (Throwable e) { logger.error("ERROR ## Something goes wrong when starting up the Otter /node/etl/src/main/java/com/alibaba/otter/node/etl/OtterContextLocator.java public class OtterContextLocator

    23610

    聊聊OtterLauncher

    序 本文主要研究一下OtterLauncher mysql-56-gtid-in-a-nutshell-40-638.jpg OtterLauncher otter/node/deployer/src /main/java/com/alibaba/otter/node/deployer/OtterLauncher.java public class OtterLauncher { ​ private public void run() { try { logger.info("INFO ## stop the otter catch (Throwable e) { logger.warn("WARN ##something goes wrong when stopping Otter catch (Throwable e) { logger.error("ERROR ## Something goes wrong when starting up the Otter

    24100

    SpringBoot系列之集成阿里canal监听MySQL Binlog

    ; import com.alibaba.otter.canal.client.CanalConnector; import com.alibaba.otter.canal.common.utils.AddressUtils ; import com.alibaba.otter.canal.protocol.Message; import com.alibaba.otter.canal.protocol.CanalEntry.Column ; import com.alibaba.otter.canal.protocol.CanalEntry.Entry; import com.alibaba.otter.canal.protocol.CanalEntry.EntryType ; import com.alibaba.otter.canal.protocol.CanalEntry.EventType; import com.alibaba.otter.canal.protocol.CanalEntry.RowChange ; import com.alibaba.otter.canal.protocol.CanalEntry.RowData; public class SimpleCanalClientExample

    23520

    canal 源码解析系列-canal的HA机制解析

    #main --> com.alibaba.otter.canal.deployer.CanalStarter#start --> com.alibaba.otter.canal.deployer.CanalController 对于每一个instance,都会在/otter/canal/destinations节点下记录自己的canal-server和canal-client信息。 接着在/otter/canal/destinations/{destination}/running节点下注册dataListener,用来监听该节点的数据增删改变化。 我们来梳理下目前看到的永久节点和临时节点 /otter/canal/cluster 永久节点目录,集群的节点信息根目录,代表正在运行的canal server /otter/canal/cluster/ ip:port 临时节点,存放具体的节点信息 /otter/canal/destinations 存放多个instance信息 /otter/canal/destinations/{destination

    33420

    聊聊canal的Position

    序 本文主要研究一下canal的Position timg (59).jpeg Position canal-1.1.4/protocol/src/main/java/com/alibaba/otter TimePosition继承了Position,它定义了timestamp属性 EntryPosition canal-1.1.4/protocol/src/main/java/com/alibaba/otter journalName、position、serverId、gtid属性 SlaveEntryPosition canal-1.1.4/parse/src/main/java/com/alibaba/otter EntryPosition,它定义了masterHost、masterPort属性 LogPosition canal-1.1.4/protocol/src/main/java/com/alibaba/otter } LogPosition继承了Position,它定义了identity、postion两个属性 cursor canal-1.1.4/meta/src/main/java/com/alibaba/otter

    35600

    数据异构重器之 Canal 初探

    1、Canal Server Demo package com.alibaba.otter.canal.server; import com.alibaba.otter.canal.instance.core.CanalInstance ; import com.alibaba.otter.canal.instance.manager.model.Canal; import com.alibaba.otter.canal.instance.manager.model.CanalParameter ; import com.alibaba.otter.canal.client.CanalConnector; import com.alibaba.otter.canal.common.utils.AddressUtils ; import com.alibaba.otter.canal.protocol.CanalEntry; import com.alibaba.otter.canal.protocol.Message ; import com.alibaba.otter.canal.protocol.CanalEntry.Column; import com.alibaba.otter.canal.protocol.CanalEntry.EventType

    79620

    Canal入门

    ; import com.alibaba.otter.canal.client.CanalConnector; import com.alibaba.otter.canal.common.utils.AddressUtils ; import com.alibaba.otter.canal.protocol.Message; import com.alibaba.otter.canal.protocol.CanalEntry.Column ; import com.alibaba.otter.canal.protocol.CanalEntry.Entry; import com.alibaba.otter.canal.protocol.CanalEntry.EntryType ; import com.alibaba.otter.canal.protocol.CanalEntry.EventType; import com.alibaba.otter.canal.protocol.CanalEntry.RowChange package com.alibaba.otter.canal.kafka.producer; ...

    73721

    聊聊OtterController

    序 本文主要研究一下OtterController mysql-binlog-servers-at-bookingcom-15-638.jpg OtterController otter/node/ etl/src/main/java/com/alibaba/otter/node/etl/OtterController.java public class OtterController implements /node/etl/src/main/java/com/alibaba/otter/node/etl/OtterController.java private void initNid() { /node/etl/src/main/java/com/alibaba/otter/node/etl/OtterController.java public void startPipeline /node/etl/src/main/java/com/alibaba/otter/node/etl/OtterController.java private void stopPipeline

    25500

    扫码关注腾讯云开发者

    领取腾讯云代金券