Canal采集程序搭建
使用java语言将canal中的binlog日志解析,并写入到Kafka中
mysql开启binLog日志
- 使用vi打开 /etc/my.cnf
- 添加以下配置
#配置binlog日志的存放路径为/var/lib/mysql目录,文件以mysql-bin开头
log-bin=/var/lib/mysql/mysql-bin
# 配置mysql中每一行记录的变化都会详细记录下来
binlog-format=ROW
# 配置当前机器器的服务ID(如果是mysql集群,不能重复)
server_id=1
3.重启mysql
service mysqld restart
4.进入Mysql客户端输入
show variables like '%log_bin%';
±--------------------------------±-------------------------------+
| Variable_name | Value |
±--------------------------------±-------------------------------+
| log_bin | ON |
| log_bin_basename | /var/lib/mysql/mysql-bin |
| log_bin_index | /var/lib/mysql/mysql-bin.index |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
| sql_log_bin | ON |
±--------------------------------±-------------------------------+
编写canal客户端
导入pom依赖
<dependencies>
<dependency>
<groupId>com.alibaba.otter</groupId>
<artifactId>canal.client</artifactId>
<version>1.0.24</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka -->
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.11</artifactId>
<version>0.9.0.1</version>
</dependency>
<!--对象和json 互相转换的-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.44</version>
</dependency>
</dependencies>
二、编写GlobalConfigUtil工具类,读取application.properties配置文件
步骤
- 创建 GlobalConfigUtil 工具类,读取 application.properties 中的 canal 和 kafka 配置
- 添加main方法,测试是否能正确读取配置
GlobalConfigUtil.java
import java.util.ResourceBundle;
/**
* 配置文件的公共类
*/
public class GlobalConfigUtil {
//读取application.properties文件
private static ResourceBundle resourceBundle = ResourceBundle.getBundle("applicatio