文档章节

Canal & Otter 的一些注意事项和最佳实践

whaon
 whaon
发布于 2015/11/02 11:26
字数 924
阅读 11854
收藏 13
点赞 2
评论 11

1,canal和otter由于是java开发的,运行在windows和linux上都可以

2,为了使用otter必须要canal的支持,otter作为canal的消费方,当然也可以单独使用canal,如果你有消费mysql binlog的需求

3,canal有几种运行方式,生产环境中推荐使用zookeeper的持久化方式,对应的spring配置文件为:default-instance.xml

4,运行otter需要aria2的支持,windows和linux都有对应的版本

centos5,安装aria2的解决办法:

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
rpm -Uvh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
yum -y install aria2

5,canal在otter中只支持嵌入的方式,通过管理界面配置就好,不需要再手动控制canal,canal是通过线程的方式运行在node节点

6,canal用的zookeeper和node-manager用的zookeeper可以用同一个,数据不会冲突,但是至少要3台机器做集群来HA,也可以利用zookeeper的observer特性构成读镜像来提升性能

7,otter只支持ROW模式的数据同步,其他两种模式不支持

8,源库只支持mysql,目标库支持mysql和oracle

9,同步的表必须要有主键,无主键表update会是一个全表扫描,效率比较差),就是全字段匹配,如果出现重复记录的话,同步会导致数据错乱

10,支持部分ddl同步  (支持create table / drop table / alter table / truncate table / rename table / create index / drop index,其他类型的暂不支持,比如grant,create user,trigger等等),同时ddl语句不支持幂等性操作,所以出现重复同步时,会导致同步挂起,可通过配置高级参数:跳过ddl异常,来解决这个问题.  

11,不支持带外键的记录同步.  (数据载入算法会打算事务,进行并行处理,会导致外键约束无法满足)

12,数据库上trigger配置慎重.  (比如源库,有一张A表配置了trigger,将A表上的变化记录到B表中,而B表也需要同步。如果目标库也有这trigger,在同步时会插入一次A表,2次B表,因为A表的同步插入也会触发trigger插入一次B表,所以有2次B表同步.)

13,2个manager,可以部署2个manager,manager之间本身没有通信,而是通过zk和数据库,配置node的时候需要知道manager,可以指定其中一个即可,数据会反应到数据库和zk中,但是当这个manager挂了,新配置的node信息就不能反馈到另外一个manager上,所以最佳实践是指定所有的manage

14,https的支持,otter用的是jetty,修改下jetty.xml,改成https的方式就好,同时要修改otter.properties中的otter.domainName参数,谁知道生成的菜单变成了类似https/auto_keeper_clusters_list.htm,由于菜单是公用的,找到navigation.vm,修改url链接就好了,然而在登录的时候又粗线问题了,后台验证成功后,跳转的url连接又不对,后来发现otter用的是webx的框架,找到了uris.xml,找到serverURI节点,把前面的http://去掉就可以了

15,禁止匿名访问,本来是想通过filter的方式来实现,但是发现session中怎么也取不到登录后的信息,发现webx框架自己实现了session,已经无解了,通过查看manager的配置文件发现了webx.xml这个好东西,发现urlAnalyze节点里配置了权限相关,愉快的解决了

需要的软件及脚本下载:

http://pan.baidu.com/s/1o6s14Ie



© 著作权归作者所有

共有 人打赏支持
whaon

whaon

粉丝 42
博文 38
码字总数 33114
作品 0
厦门
程序员
加载中

评论(11)

whaon
whaon

引用来自“fanch007”的评论

你好,请问OTTER系统中的高可用是如何配置的啊,比如:MANGAE管理的节点(NODE如何指向),OTTER自己的配置数据库,配置的CANAL节点,同步用的数据源(源头)等,求大神指导,谢谢

引用来自“whaon”的评论

你好,请参考https://github.com/alibaba/otter/wiki/Otter%E9%AB%98%E5%8F%AF%E7%94%A8%E6%80%A7

引用来自“fanch007”的评论

这个文档上讲的是原理,一些具体的配置,如NODE配置如何指向MANAGE的多节点,OTTER系统配置数据库的配置宕机之后的切换配置,可以分享下你的配置流程和过程中的经验吗?

引用来自“whaon”的评论

OTTER系统配置数据库的配置宕机之后的切换配置,这个你是指数据库的主备切换么,如果是的话我们目前没有这样配置,上面的连接里最下面有相关的说明,应该是可以的

引用来自“fanch007”的评论

被消费的数据库的切换我是懂的,只要在groupkey那边设置,我指的是OTTER这个数据库,存放了NODE,ZOKEEPER等这些配置信息的数据库的高可用
可以参考这篇文章:http://my.oschina.net/dxqr/blog/530928
fanch007
fanch007

引用来自“fanch007”的评论

你好,请问OTTER系统中的高可用是如何配置的啊,比如:MANGAE管理的节点(NODE如何指向),OTTER自己的配置数据库,配置的CANAL节点,同步用的数据源(源头)等,求大神指导,谢谢

引用来自“whaon”的评论

你好,请参考https://github.com/alibaba/otter/wiki/Otter%E9%AB%98%E5%8F%AF%E7%94%A8%E6%80%A7

引用来自“fanch007”的评论

这个文档上讲的是原理,一些具体的配置,如NODE配置如何指向MANAGE的多节点,OTTER系统配置数据库的配置宕机之后的切换配置,可以分享下你的配置流程和过程中的经验吗?

引用来自“whaon”的评论

OTTER系统配置数据库的配置宕机之后的切换配置,这个你是指数据库的主备切换么,如果是的话我们目前没有这样配置,上面的连接里最下面有相关的说明,应该是可以的
被消费的数据库的切换我是懂的,只要在groupkey那边设置,我指的是OTTER这个数据库,存放了NODE,ZOKEEPER等这些配置信息的数据库的高可用
whaon
whaon

引用来自“fanch007”的评论

你好,请问OTTER系统中的高可用是如何配置的啊,比如:MANGAE管理的节点(NODE如何指向),OTTER自己的配置数据库,配置的CANAL节点,同步用的数据源(源头)等,求大神指导,谢谢

引用来自“whaon”的评论

你好,请参考https://github.com/alibaba/otter/wiki/Otter%E9%AB%98%E5%8F%AF%E7%94%A8%E6%80%A7

引用来自“fanch007”的评论

这个文档上讲的是原理,一些具体的配置,如NODE配置如何指向MANAGE的多节点,OTTER系统配置数据库的配置宕机之后的切换配置,可以分享下你的配置流程和过程中的经验吗?
OTTER系统配置数据库的配置宕机之后的切换配置,这个你是指数据库的主备切换么,如果是的话我们目前没有这样配置,上面的连接里最下面有相关的说明,应该是可以的
whaon
whaon

引用来自“fanch007”的评论

你好,请问OTTER系统中的高可用是如何配置的啊,比如:MANGAE管理的节点(NODE如何指向),OTTER自己的配置数据库,配置的CANAL节点,同步用的数据源(源头)等,求大神指导,谢谢

引用来自“whaon”的评论

你好,请参考https://github.com/alibaba/otter/wiki/Otter%E9%AB%98%E5%8F%AF%E7%94%A8%E6%80%A7

引用来自“fanch007”的评论

这个文档上讲的是原理,一些具体的配置,如NODE配置如何指向MANAGE的多节点,OTTER系统配置数据库的配置宕机之后的切换配置,可以分享下你的配置流程和过程中的经验吗?
我们线上的暂时只配置了一个manager,如果指向manager多节点的话我之前尝试过otter.manager.address = 127.0.0.1:1099,这个配置以逗号分隔,应该是可以的,因为蛮久前了我也记不大清了,你可以自己尝试下
fanch007
fanch007

引用来自“fanch007”的评论

你好,请问OTTER系统中的高可用是如何配置的啊,比如:MANGAE管理的节点(NODE如何指向),OTTER自己的配置数据库,配置的CANAL节点,同步用的数据源(源头)等,求大神指导,谢谢

引用来自“whaon”的评论

你好,请参考https://github.com/alibaba/otter/wiki/Otter%E9%AB%98%E5%8F%AF%E7%94%A8%E6%80%A7
这个文档上讲的是原理,一些具体的配置,如NODE配置如何指向MANAGE的多节点,OTTER系统配置数据库的配置宕机之后的切换配置,可以分享下你的配置流程和过程中的经验吗?
whaon
whaon

引用来自“fanch007”的评论

你好,请问OTTER系统中的高可用是如何配置的啊,比如:MANGAE管理的节点(NODE如何指向),OTTER自己的配置数据库,配置的CANAL节点,同步用的数据源(源头)等,求大神指导,谢谢
你好,请参考https://github.com/alibaba/otter/wiki/Otter%E9%AB%98%E5%8F%AF%E7%94%A8%E6%80%A7
fanch007
fanch007
你好,请问OTTER系统中的高可用是如何配置的啊,比如:MANGAE管理的节点(NODE如何指向),OTTER自己的配置数据库,配置的CANAL节点,同步用的数据源(源头)等,求大神指导,谢谢
whaon
whaon

引用来自“qeeainburg”的评论

canal client可以多线程去拉server的数据吗?
不能多线程拉吧,但是拉回来的数据自己可以多线程处理
qeeainburg
qeeainburg
canal client可以多线程去拉server的数据吗?
whaon
whaon

引用来自“大叔在路上”的评论

你好,请教一下 " 会导致同步挂起,可通过配置高级参数:跳过ddl异常 " 这个是在mysql里面设置吗?
不是,是在manager的页面配置,你多点点相信你会找到的
【源码】otter工程结构

最近在搞数据同步相关的内容,需要对otter的代码进行扩展,所以需要先熟悉一下otter的源码。首先我们整体来看下otter的工程结构。otter的工程结构比较复杂,需要花费一定的时间来理解各个部分...

端木轩 ⋅ 01/22 ⋅ 0

使用canal同步数据的时候,在连接mysql数据库连接不上

2017-08-01 09:27:36.766 [main] INFO c.a.o.c.i.spring.support.PropertyPlaceholderConfigurer - Loading properties file from class path resource [canal.properties] 2017-08-01 09:27......

OMBGZ ⋅ 2017/08/01 ⋅ 1

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

呜啦啦啦啦!今天笔者又来开坑了,这次开坑的对象呢是阿里的一个开源项目Otter,Otter它是一个数据同步解决方案,可以解决本地跨网络跨机房跨地域的数据同步问题,并且拥有可观的效率,web管理工具...

喵了_个咪 ⋅ 2016/07/27 ⋅ 24

有没有人研究过Canal基于其它方式的配置

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

尚浩宇 ⋅ 2017/03/16 ⋅ 0

Mysql跨机房同步方案

假设现有两个机房,需要做到数据同步。 以下是架构图(实际架构图根据现有机房架构和实际会比下图复杂,但整体思路不变): Mycat、Canal、Otter是关键的三项技术: Mycat:数据库分库分表中...

尚浩宇 ⋅ 2016/05/19 ⋅ 0

canal与hbase的protobuf版本冲突

测试环境:canal server和client版本:v1.0.22;hbase-client版本:1.0.1.1 报错原因:canal 1.0.22版本依赖的protobuf版本为2.4.1,hbase依赖的protobuf版本为2.5.0,存在冲突。canal客户端...

1010101010 ⋅ 2016/10/31 ⋅ 0

【Canal源码分析】Canal Server的启动和停止过程

本文主要解析下canal server的启动过程,希望能有所收获。 一、序列图 1.1 启动 1.2 停止 二、源码分析 整个server启动的过程比较复杂,看图难以理解,需要辅以文字说明。 首先程序的入口在C...

端木轩 ⋅ 05/24 ⋅ 0

利用otter实现跨机房数据同步

Otter: otter是阿里开源的一个分布式数据库同步系统,尤其是在跨机房数据库同步方面,有很强大的功能。它是基于数据库增量日志解析,实时将数据同步到本机房或跨机房的mysql/oracle数据库。 ...

icenycmh ⋅ 05/07 ⋅ 0

otter搭建说明

1 环境说明: 本机ip 192.168.8.3 虚拟机1 ip 192.168.8.5 虚拟机2 ip 192.168.8.6 虚拟机采取桥接模式 虚拟机系统为CentOS 2.6.32-279.el6.i686 java版本 1.6.0-24 mysql版本 5.1.61-log 2...

MrMyj ⋅ 2016/02/23 ⋅ 0

阿里巴巴分布式数据库同步系统--otter

otter 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统。 工作原理: 原理描述: 1. 基于Canal开源产品,获取数据库增量日志数据。 ...

红薯 ⋅ 2013/08/19 ⋅ 8

没有更多内容

加载失败,请刷新页面

加载更多

下一页

tcp/ip详解-链路层

简介 设计链路层的目的: 为IP模块发送和接收IP数据报 为ARP模块发送ARP请求和接收ARP应答 为RARP模块发送RARP请求和接收RARP应答 TCP/IP支持多种链路层协议,如以太网、令牌环往、FDDI、RS-...

loda0128 ⋅ 今天 ⋅ 0

spring.net aop代码例子

https://www.cnblogs.com/haogj/archive/2011/10/12/2207916.html

whoisliang ⋅ 今天 ⋅ 0

发送短信如何限制1小时内最多发送11条短信

发送短信如何限制1小时内最多发送11条短信 场景: 发送短信属于付费业务,有时为了防止短信攻击,需要限制发送短信的频率,例如在1个小时之内最多发送11条短信. 如何实现呢? 思路有两个 截至到当...

黄威 ⋅ 昨天 ⋅ 0

mysql5.7系列修改root默认密码

操作系统为centos7 64 1、修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1 这一行配置让 mysqld 启动时不对密码进行验证 2、重启 mysqld 服务:systemctl restart mysql...

sskill ⋅ 昨天 ⋅ 0

Intellij IDEA神器常用技巧六-Debug详解

在调试代码的时候,你的项目得debug模式启动,也就是点那个绿色的甲虫启动服务器,然后,就可以在代码里面断点调试啦。下面不要在意,这个快捷键具体是啥,因为,这个keymap是可以自己配置的...

Mkeeper ⋅ 昨天 ⋅ 0

zip压缩工具、tar打包、打包并压缩

zip 支持压缩目录 1.在/tmp/目录下创建目录(study_zip)及文件 root@yolks1 study_zip]# !treetree 11└── 2 └── 3 └── test_zip.txt2 directories, 1 file 2.yum...

蛋黄Yolks ⋅ 昨天 ⋅ 0

聊聊HystrixThreadPool

序 本文主要研究一下HystrixThreadPool HystrixThreadPool hystrix-core-1.5.12-sources.jar!/com/netflix/hystrix/HystrixThreadPool.java /** * ThreadPool used to executed {@link Hys......

go4it ⋅ 昨天 ⋅ 0

容器之上传镜像到Docker hub

Docker hub在国内可以访问,首先要创建一个账号,这个后面会用到,我是用126邮箱注册的。 1. docker login List-1 Username不能使用你注册的邮箱,要用使用注册时用的username;要输入密码 ...

汉斯-冯-拉特 ⋅ 昨天 ⋅ 0

SpringBoot简单使用ehcache

1,SpringBoot版本 2.0.3.RELEASE ①,pom.xml <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.3.RELE......

暗中观察 ⋅ 昨天 ⋅ 0

Spring源码解析(八)——实例创建(下)

前言 来到实例创建的最后一节,前面已经将一个实例通过不同方式(工厂方法、构造器注入、默认构造器)给创建出来了,下面我们要对创建出来的实例进行一些“加工”处理。 源码解读 回顾下之前...

MarvelCode ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部