Flink CDC和mysql-connector-java依赖冲突导致没有输出

项目场景:

Flink使用cdc读取mysql配置信息

问题描述

print没有输出

java 复制代码
    public static MySqlSource<String> getMySqlCDCSource() {
        Map<String, Object> config = new HashMap<>();
        config.put(JsonConverterConfig.DECIMAL_FORMAT_CONFIG, DecimalFormat.NUMERIC.name());
        JsonDebeziumDeserializationSchema jdd = new JsonDebeziumDeserializationSchema(false, config);

        return MySqlSource.<String>builder()
                .hostname(readValue("mysql.host"))
                .port(Integer.parseInt(readValue("mysql.port")))
                .databaseList(readValue("mysql.database"))//库
                .tableList(readValue("mysql.table"))//表
                .username(readValue("mysql.username"))
                .password(readValue("mysql.password"))
                .serverTimeZone(readValue("mysql.serverTimeZone"))
                .startupOptions(StartupOptions.initial())//启动的时候从第一次开始读取
                .deserializer(jdd)
                .build();
    }

    public static void main(String[] args) throws Exception {
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        SingleOutputStreamOperator<String> cdcConfig = env.fromSource(MysqlUtil.getMySqlCDCSource(), WatermarkStrategy.noWatermarks(), "mysqlConfig")
                .uid("mysqlSource_sourceName_uid").name("mysqlSource_sourceName_name").setParallelism(1);

        cdcConfig.print();
        env.execute();
    }

原因分析:

由于Sink是Mysql,导入了mysql jdbc依赖

xml 复制代码
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.30</version>
        </dependency>

查阅资料后,可能是MySQL Connector/J 的版本不兼容引起的。MySQL Connector/J 8.0.23 与 Flink 的 CDC 版本兼容性较好,但其他版本可能存在不兼容的情况。尝试将版本改为8.0.23后问题解决,输出正常


解决方案:

将mysql jdbc依赖版本改为8.0.23

xml 复制代码
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.23</version>
        </dependency>
相关推荐
渣渣盟1 小时前
Flink事件时间与窗口操作实战指南
大数据·flink·scala
Yyyyy123jsjs1 小时前
如何选用外汇接口实现稳定数据抓取?
大数据·python·金融
孟意昶2 小时前
Doris专题31-SQL手册-基础元素
大数据·数据库·数据仓库·分布式·sql·知识图谱·doris
飞飞传输2 小时前
国产化FTP替代方案哪个好?选对平台让传输更安全高效
大数据·运维·安全
2501_933329553 小时前
企业舆情处置实战:Infoseek数字公关AI中台技术架构与功能解析
大数据·人工智能·架构·数据库开发
编程迪3 小时前
基于Java和Vue开发的剪辑接单小程序APP软件系统源码
大数据
551只玄猫3 小时前
【模块1 建立认知2】金融数据的类型与获取方式(附实战)
大数据·金融·数据科学·数据处理
亿信华辰软件4 小时前
从单业态到多业态:主数据管理的策略、架构与实践
大数据
ctrigger4 小时前
中国水利水电工程局有限公司
大数据
iiiiyu4 小时前
常用API(SimpleDateFormat类 & Calendar类 & JDK8日期 时间 日期时间 & JDK8日期(时区) )
java·大数据·开发语言·数据结构·编程语言