##简介: 基于数据库增量(模拟MySQL slave的交互协议)日志解析,提供增量数据订阅和消费(客户端与canal创建关系)mysql
安装版本:1.1.0 gitgit
##环境需求:github
##目录结构:spring
[root@wap canal]# tree -L 2 /usr/local/canal /usr/local/canal ├── bin #启动、关闭、重启命令 │ ├── restart.sh │ ├── startup.bat │ ├── startup.sh │ └── stop.sh ├── conf #配置文件目录 │ ├── canal.properties #canal程序配置文件 │ ├── example #数据库实例配置目录,一个实例一个目录 │ │ ├── instance.properties #每一个实例单独的配置文件 │ │ └── meta.dat #记录binlog相关信息,防止重启相关信息丢失 │ ├── logback.xml │ ├── metrics │ └── spring ├── lib │ ├── aopalliance-1.0.jar │ ├── aviator-2.2.1.jar .... └── logs ├── canal #canal程序自己日志目录 └── example #链接数据库实例的日志目录
##配置说明:sql
###conf/canal.properties 主配置文件:数据库
####canal.instance.global.spring.xml配置选项介绍 memory-instance.xml介绍:api
全部的组件(parser , sink , store)都选择了内存版模式,记录位点的都选择了memory模式,重启后又会回到初始位点进行解析 特色:速度最快,依赖最少(不须要zookeeper) 场景:通常应用在quickstart,或者是出现问题后,进行数据分析的场景,不该该将其应用于生产环境ide
default-instance.xml介绍:源码分析
store选择了内存模式,其他的parser/sink依赖的位点管理选择了持久化模式,目前持久化的方式主要是写入zookeeper,保证数据集群共享. 特色:支持HA 场景:生产环境,集群化部署.ui
group-instance.xml介绍:
主要针对须要进行多库合并时,能够将多个物理instance合并为一个逻辑instance,提供客户端访问。 场景:分库业务。 好比产品数据拆分了4个库,每一个库会有一个instance,若是不用group,业务上要消费数据时,须要启动4个客户端,分别连接4个instance实例。使用group后,能够在canal server上合并为一个逻辑instance,只须要启动1个客户端,连接这个逻辑instance便可.
###conf/example/instance.properties 实例配置
##配置式例: ###1. 多实例配置
cp -a conf/example conf/example_1
canal.destinations= example,example_1 $ cp -a conf/example conf/example_1 $ ./bin/restart.sh
高可用,集群相关配置wiki中介绍,请参阅官网 源码分析