百度官网认证入口,做优化的网站用什么空间好,建筑图纸怎么看懂的最快 施工图,西安楼市最新情况canal译意为水道/管道/沟渠#xff0c;主要用途是基于 MySQL 数据库增量日志解析#xff0c;提供增量数据订阅和消费。 1.canal 工作原理
canal 模拟 MySQL slave 的交互协议#xff0c;伪装自己为 MySQL slave #xff0c;向 MySQL master 发送dump 协议MySQL master 收到… canal译意为水道/管道/沟渠主要用途是基于 MySQL 数据库增量日志解析提供增量数据订阅和消费。 1.canal 工作原理
canal 模拟 MySQL slave 的交互协议伪装自己为 MySQL slave 向 MySQL master 发送dump 协议MySQL master 收到 dump 请求开始推送 binary log 给 slave (即 canal )canal 解析 binary log 对象(原始为 byte 流)
2.安装/配置MySQL
1.安装mysql 已安装略过此步骤未安装可以参考linux 安装MySQL-CSDN博客进行安装。
2.开启binlog日志 vi /etc/my.cnf [mysqld]
log-binmysql-bin # 开启 binlog
binlog-formatROW # 选择 行 模式
#binlog-do-db 根据自己的情况进行修改指定具体要同步的数据库如果不配置
则表示所有数据库均开启 Binlog
#binlog-do-dbdemo
#binlog-do-dbdmp
注意需要重启MySQL实例使配置生效执行命令sudo systemctl restart mysqld
3.新建canal账号并授权
create user canal% identified with mysql_native_password by wsx-123;
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO canal%;
-- GRANT ALL PRIVILEGES ON *.* TO canal% ;
FLUSH PRIVILEGES;
4.查看binlog日志
1)查看binlog模式show variables like %binlog_format%; 2)查看binlog日志文件列表show binary logs; 3)查看当前正在写入的binlog文件 show master status; 3.安装Canal
3.1下载 canal wget https://github.com/alibaba/canal/releases/download/canal-1.1.6/canal.adapter-1.1.6.tar.gz 3.2 解压canal mkdir ~/opt/canal tar -zxf canal.deployer-1.1.6.tar.gz -C ~/opt/canal 3.3 修改canal 的基本通用配置 vi conf/canal.properties #canal常用端口 canal.admin.port 11110 canal.port 11111 canal.metrics.pull.port 11112 # 输出 model默认 tcp改为输出到: kafka, rocketMQ, rabbitMQ, pulsarMQ canal.serverMode tcp # 指定实例,多个实例使用逗号分隔: canal.destinations example1,example2 #如果需要多个实例处理不同的MySQL数据的话直接拷贝出多个conf/example并对其重新命名命名和配置文件中指定的名称一致即可 canal.destinations example 3.4 修改canal 实例配置 vi conf/example/instance.properties ## mysql serverId , v1.0.26 will autoGen # canal.instance.mysql.slaveId0 # mysql数据库地址:ip端口 canal.instance.master.address127.0.0.1:3306 # mysql数据库用户名和密码 canal.instance.dbUsernamecanal canal.instance.dbPasswordwsx-123 #代表数据库的编码方式对应到 java 中的编码类型比如 UTF-8GBK , ISO-8859-1 canal.instance.connectionCharset UTF-8 # 指定库和表这里的 .* 表示 canal.instance.master.address 下面的所有数据库 canal.instance.filter.regex.*\\..* #指定具体数据库和该库所有表 #canal.instance.defaultDatabaseNamedemo #table regex #canal.instance.filter.regex demo\\..* 3.5 启动canal sh bin/startup.sh 3.6 验证启动成功 tail -f logs/example/example.log 4.实时监控
4.1 canal 客户端 canal 特别设计了 client-server 模式交互协议使用 protobuf 3.0 , client 端可采用不同语言实现不同的消费逻辑。 canal java 客户端: ClientExample · alibaba/canal Wiki · GitHub
4.2 MQ客户端 canal 作为 MySQL binlog 增量获取和解析工具可将变更记录投递到 MQ 系统中比如 Kafka/RocketMQ。 参考文档: Canal Kafka/RocketMQ QuickStart