概述
Canal 安装使用
1.原理简述
canal主要是在mysql主从复制的基础上,通过模拟slave节点,解析master节点发送的增量binlog日志达到监控数据库数据的目的,与slave节点不同的是,canal不存储数据,只做监控后服务处理
2.安装
- 下载canal-1.1.6
wget https://github.com/alibaba/canal/releases/download/canal-1.1.6/canal.deployer-1.1.6.tar.gz
- 配置canal.properties文件
canal.id = 123
- 配置example下的instance.properties
# position info
canal.instance.master.address=192.168.0.106:3306
#canal.instance.filter.regex=.*\..* # 用来配置监听的表,默认全部
- 开启mysql的binlog功能
#my.cnf 文件下
log-bin=mysql-bin # 开启 binlog
binlog-format=ROW # 选择 ROW 模式
server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复
- 为canal创建mysql用户
#在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使用
- 添加依赖
<dependency>
<groupId>top.javatool</groupId>
<artifactId>canal-spring-boot-starter</artifactId>
<version>1.2.1-RELEASE</version>
</dependency>
- yml配置
#Canal配置
canal:
server: 192.168.100.130:11111
destination: example
- 创建监听类
# 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 安装使用Canal 安装使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复