Canal简介及配置说明
来源:互联网 发布:mac 免费vnc客户端 编辑:程序博客网 时间:2024/06/03 19:00
1.简介
canal是纯Java开发的,基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了mysql。
原理相对比较简单:
1. canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议
2. mysql master收到dump请求,开始推送binary log给slave(也就是canal)
3. canal解析binary log对象(原始为byte流)
2.mysql要求
a. 目前canal支持mysql 5.5版本以下,对mysql5.6暂不支持,(mysql4.x版本没有经过严格测试,理论上是可以兼容)
b. canal的原理是基于mysql binlog技术,所以这里一定需要开启mysql的binlog写入功能,并且配置binlog模式为row.
log-bin=mysql-bin #添加这一行就ok
binlog-format=ROW #选择row模式
server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复
下面两个配置强烈建议配置,这样可以减小binlog的大小,忽略不需要关注的库的binlog
binlog-do-db = epg #配置需要同步的库
binlog-ignore-db = mysql #配置不需要同步的库
c. canal的原理是模拟自己为mysql slave,所以这里一定需要做为mysql slave的相关权限
CREATE USER canal IDENTIFIED BY 'canal';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
GRANT SELECT,REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO canal@localhost ;
FLUSH PRIVILEGES;
针对已有的账户可通过grants查询权限:
show grants for 'canal';
3.部署
1. 获取发布包
访问:https://github.com/alibaba/canal/releases,会列出所有历史的发布版本包
下载方式,比如以1.0.17版本为例子:
wget https://github.com/alibaba/canal/releases/download/canal-1.0.17/canal.deployer-1.0.17.tar.gz
下载到的文件,名字不对,需要重命名,命令如下:
Mv 下载的文件 canal.deployer-1.0.17.tar.gz
2. 目录结构
解压缩发布包后,可得如下目录结构:
drwxr-xr-x 2 jianghang jianghang 136 2013-03-19 15:03 bin
drwxr-xr-x 4 jianghang jianghang 160 2013-03-19 15:03 conf
drwxr-xr-x 2 jianghang jianghang 1352 2013-03-19 15:03 lib
drwxr-xr-x 2 jianghang jianghang 48 2013-03-19 15:03 logs
3. 启动/停止
linux启动 :
sh startup.sh
linux停止:
sh stop.sh
几点注意:
1. linux启动完成后,会在bin目录下生成canal.pid,stop.sh会读取canal.pid进行进程关闭
2. startup.sh默认读取系统环境变量中的which java获得JAVA执行路径,需要设置PATH=$JAVA_HOME/bin环境变量
3. canal的内存设置在start.sh中第75或77行,(建议将75和77行的内存设置值保持相同)如下:
4.配置
properties配置分为两部分:
canal.properties (系统根配置文件,/conf/canal.properties)
需要关注的配置项如下:
1. canal.port:canal server提供socket服务的端口,建议配置32121
2. canal.instance.detecting.enable:是否开启心跳检查,建议配置true
3. canal.instance.detecting.sql:心跳检查sql,建议配置select 1 from 目标库.目标表
4. canal.destinations:当前server上部署的instance列表,比如需要获取epg库的表更新则可以创建一个名为epg的instance,则配置canal.destinations = epg,同时需要在/conf/下新建epg目录,并在其中创建instance.properties即可
l instance.properties (instance级别的配置文件,每个instance一份,/conf/实例名称/ instance.properties)
- Canal简介及配置说明
- Canal简介
- canal简介
- canal简介
- Canal配置
- canal配置
- canal配置
- canal安装及使用
- Canal之配置
- Canal之配置
- canal
- Jsoup 简介 及示例说明
- GDB简介及常用命令说明
- 4.hadoop之Zookeeper——01.简介及基本配置说明
- Tomcat 简介及配置
- Freemarker简介及配置
- pgbouncer简介及配置
- Golang 简介及配置
- SpringBoot ——配置文件多环境配置
- 值域范围 tf.clip_by_value的用法
- 架构探险 代码逻辑
- 欢迎使用CSDN-markdown编辑器
- 关于交叉熵和sigmoid函数的组合
- Canal简介及配置说明
- 算法学习笔记(roman&integer)
- python 稀疏存储与计算-scipy.sparse学习笔记(持续更新...)
- ASP.Net请求处理机制初步探索之旅
- js将时间戳转换为时间
- ReentrantLock
- 关于angular2路由传参
- [SDUT](2072)删数问题 ---贪心
- c++ lambda表达式