• Flink Maven项目兼容多版本Kafka


    主要有两种方法可以解决:修改jar包内部的包名或者使用自定义classloader

    Flink需要导入kafka-clients来支持对kafka的生产和消费。kafka-clients0.11提供的api仅在kafka0.11、kafka0.10版本可用,如果要对kafka0.8、kafka0.9进行生产和消费,则需要使用版本相匹配的kafka-clients的jar包。但如果直接使用这些jar包会导致jar包冲突,因为里面的类名字相同且都是在相同包名下的。

          <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka_${scala.binary.version}</artifactId>
                <version>0.11.0.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka_${scala.binary.version}</artifactId>
                <version>0.10.2.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka_${scala.binary.version}</artifactId>
                <version>0.9.0.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka_${scala.binary.version}</artifactId>
                <version>0.8.2.2</version>
            </dependency>    

    像这样把所有版本的依赖引入必然会造成jar包冲突。

    因此需要对jar包中的包名进行修改防止冲突。
    这里分别将org.apache.kafka修改为org.apache.kafka08和org.apache.kafka09。使用的工具为jarjar。

  • 相关阅读:
    python os.path
    ant的基本说明
    gcc的基本使用方法
    java逻辑运算符小节
    awk 简单教程
    推荐:恢复Ext3下被删除的文件
    python读取excel
    ant的简明教程,后面运行写的不错
    WinForm中快捷键与组合按键的设置
    InstallShield 2010集成.net Framework 4的安装包制作
  • 原文地址:https://www.cnblogs.com/mycd/p/11228022.html
Copyright © 2020-2023  润新知