FlinkCDC监听获取mysql对应binlog日志数据
1.1.前提准备
Mysql开启binlog日志,进入到mysql客户端或者可视化窗口查询:show variables like ‘log_bin’;
如果显示on表示开启,off表示未开启。然后需要修改配置文件开启binlog日志。

可以通过 mysql --help | grep ‘my.cnf’ 命令查看配置文件的搜索路径。
[mysqld]
# 开启 binlog(必填)
log_bin = /var/lib/mysql/mysql-bin # 指定 binlog 文件的存储路径和前缀(需确保 MySQL 对该目录有写入权限)
# 可选配置(根据需求添加)
server-id = 1 # 服务器唯一 ID(主从复制时必填,取值范围 1-2^32-1)
binlog_format = row # binlog 格式(可选值:statement/row/mixed,推荐 row 模式,记录数据行的变更,安全性更高)
expire_logs_days = 7 # binlog 自动过期时间(天),避免日志文件过大
max_binlog_size = 100M # 单个 binlog 文件的最大大小(默认 1G)

然后重启mysql服务:service mysqld restart
查询发现binlog日志已开启

1.2.创建maven项目监听mysql对应binlog变化捕获数据
创建MySqlSourceExample 测试主类
import com.alibaba.ververica.cdc.connectors.mysql.table.StartupOptions;
import com.alibaba.ververica.cdc.debezium.StringDebeziumDeserializationSchema;
import org.apache.commons.collections.CollectionUtils;
import org.apache.flink.api.common.functions.MapFunction;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.api.functions.source.SourceFunction;
import com.alibaba.ververica.cdc.connectors.mysql.MySQLSource;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class MySqlSourceExample {
public static void main(String[] args) throws Exception {
SourceFunction<String> sourceFunction = MySQLSource.<String>builder()
.hostname("192.168.1.1")
.port(3306)
FlinkCDC监听MySQLBinlog数据

最低0.47元/天 解锁文章

1万+

被折叠的 条评论
为什么被折叠?



