前言
Canal 是一个开源的MySQL数据库binlog监听和解析框架,用于实时捕获 MySQL数据库的binlog 变更事件,并将其解析成易于消费的数据格式。Canal 可以实时监听 MySQL 数据库的 binlog,并即时捕获数据库的数据变更事件。Canal可以将捕获到的binlog事件解析成易于消费的数据格式,如 SON格式,方便后续处理与消费。Canal 通过增量订阅和解析 binlog 的方式,避免了全量数据的传输和处理,提供了较高的性能和吞吐量。Canal 支持灵活的配置,可以根据需求过滤和选择需要监听和解析的表和字段,避免不必要的数据传输和处理。Canal 提供了多种输出方式,如Tcp、 Kafka、RocketMQ、ActiveMQ 等消息中间件,也可以直接写入文件或发送到远程服务等。
本节内容我们主要介绍如何搭建Canal服务,实现数据库binlog日志监控数据的传输,并实现一个案例将日志数据发送给kafka消息中间键消费使用。关于java、mysql、zookeeper、kafka等相关在案例中使用的服务搭建过程,本节内容不在重复介绍,可查看作者往期博客内容。
正文
①开启mysql的binlog日志,并重启mysql
- 在/etc/my.cnf配置文件中开启canal数据库的binlog日志功能
- 重启mysql数据库使binlog配置生效
- 创建一个canal数据库和一张test表用于测试
- 创建一个canal用户并授权canal数据库的操作权限
②上传Canal安装包到hadoop101服务器/opt/module目录下
③在/opt/module目录下创建canal目录,解压Canal安装包到/opt/module/canal目录下
mkdir -p /opt/module/canal
tar -zxvf canal.deployer-1.1.2.tar.gz -C /opt/module/canal
④在canal安装目录/opt/module/canal/conf下修改canal配置文件canal.properties,该文件中可以配置多个监控实例,这里配置example下的实例
- 修改canal通用配置
- 配置kafka集群地址
⑤在canal安装目录/opt/module/canal/conf/example下修改canal实例配置文件instance.properties
- 配置mysql服务地址
- 配置接MySQL授权的用户名和密码
- 配置kafka消费者主题和分区数
⑥ 启动zookeeper集群和kafka集群
⑦在kafka创建一个canal主题3分区3副本,对应配置文件instance.properties中的主题配置
kafka-topics.sh --bootstrap-server hadoop101:9092 --create --topic canal --partitions 3 --replication-factor 3
⑧使用bin目录下的脚本启动canal监控服务,开始监控mysql配置的binlog日志
⑨查看canal启动进程,查看canal是否启动成功
⑩开启一个kafka消费者,看是否能消费到canal发送的消息
kafka-console-consumer.sh --bootstrap-server hadoop101:9092 --topic canal
⑪修改canal数据库表test,插入一条数据
⑫查看kafka消费情况,能够消费到主题数据
结语
至此,关于Canal安装部署及其应用案例实战的内容到这里就结束了,我们下期见。。。。。。