请问下,io.debezium.connector.mysql.MySqlConnection类同时存在于flink mysql cdc 2.3.0和Debezium的jar中,如何解决冲突问题?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
问题描述: 您遇到了类io.debezium.connector.mysql.MySqlConnection
在Flink MySQL CDC 2.3.0库与Debezium库中同时存在导致的冲突问题。
背景信息:
解决方案:
步骤1:检查依赖管理,确保仅引入一个正确的Debezium版本。如果Flink CDC组件自带了特定版本的Debezium,避免在项目中直接添加额外的Debezium依赖。
步骤2:如果必须使用特定版本的Debezium功能,考虑排除Flink CDC库中的Debezium依赖,然后显式指定您需要的Debezium版本。在Maven或Gradle构建文件中进行如下操作:
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-connector-mysql-cdc</artifactId>
<version>2.3.0</version>
<exclusions>
<exclusion>
<groupId>io.debezium</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.debezium</groupId>
<artifactId>debezium-connector-mysql</artifactId>
<!-- 指定您需要的Debezium确切版本 -->
<version>YOUR_DEBEZIUM_VERSION</version>
</dependency>
implementation('org.apache.flink:flink-connector-mysql-cdc:2.3.0') {
exclude group: 'io.debezium'
}
implementation 'io.debezium:debezium-connector-mysql:YOUR_DEBEZIUM_VERSION'
这样做可以避免重复的类定义冲突,确保应用只使用您指定版本的Debezium库。
注意事项:
通过上述步骤,您可以解决因类重复而导致的冲突问题,确保应用程序能够正常运行。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。