Canal 安装使用
1.原理简述
canal主要是在mysql主从复制的基础上,通过模拟slave节点,解析master节点发送的增量binlog日志达到监控数据库数据的目的,与slave节点不同的是,canal不存储数据,只做监控后服务处理
2.安装
- 下载canal-1.1.6
复制代码
1
2wget https://github.com/alibaba/canal/releases/download/canal-1.1.6/canal.deployer-1.1.6.tar.gz
- 配置canal.properties文件
复制代码
1
2canal.id = 123
- 配置example下的instance.properties
复制代码
1
2
3
4# position info canal.instance.master.address=192.168.0.106:3306 #canal.instance.filter.regex=.*\..* # 用来配置监听的表,默认全部
- 开启mysql的binlog功能
复制代码
1
2
3
4
5#my.cnf 文件下 log-bin=mysql-bin # 开启 binlog binlog-format=ROW # 选择 ROW 模式 server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复
- 为canal创建mysql用户
复制代码
1
2
3
4
5#在mysql客户端执行 create user 'root'@'%' identified by 'PASSWD'; 或 ALTER USER 'canal'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; # 根据mysql版本选择 grant all privileges on *.* to 'root'@'%'; flush privileges;
- 启动
重启mysql服务
在canal的bin目录下执行启动脚本
查看logs目录下example.log日志文件查看状态
3.Spring boot使用
- 添加依赖
复制代码
1
2
3
4
5
6<dependency> <groupId>top.javatool</groupId> <artifactId>canal-spring-boot-starter</artifactId> <version>1.2.1-RELEASE</version> </dependency>
- yml配置
复制代码
1
2
3
4
5#Canal配置 canal: server: 192.168.100.130:11111 destination: example
- 创建监听类
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27# 1. 添加@CanalTable(value = "test_table") 注解 # 2. 实现EntryHandler<TestEntity> # 3 .重写insert、update、delete方法,此为test_table数据表数据变更后出发的方法,这名字很明显了。。。。 @CanalTable(value = "test_table") public class TestHandler implements EntryHandler<TestEntity> { @Override public void insert(TestEntity testEntity) { System.out.println("test_table表插入"); } /*** * 修改 * @param before * @param after */ @Override public void update(TestEntity before, TestEntity after) { System.out.println("test_table表修改"); } @Override public void delete(TestEntity testEntity) { System.out.println("test_table表删除"); } }
目前只是简单的应用示例,后续补充
最后
以上就是传统香菇最近收集整理的关于Canal 安装使用Canal 安装使用的全部内容,更多相关Canal内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复