spring boot集成kafka因为版本不兼容导致报错的解决办法

背景:

spring boot 2.1.0 集成 kafka,报错:[org.springframework.kafka.annotation.KafkaListenerAnnotationBeanPostProcessor]: Constructor threw exception; nested exception

 

kafka依赖配置如下:

        <!-- kafka 依赖 开始 -->
        <dependency>
            <groupId>org.springframework.kafka</groupId>
            <artifactId>spring-kafka</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka-clients</artifactId>
            <version>2.8.0</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.kafka</groupId>
            <artifactId>spring-kafka-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- kafka 依赖 结束 -->

 

从这篇文章https://blog.csdn.net/littlehaes/article/details/104590423得到启发,这篇文章是把spring boot进行了版本降级,但是因为要使用kafka的NewTopic特性,版本降级就不可行了,因此选择把spring-boot-starter-parent由2.1.0升级为2.5.0,启动项目不再报错。

 

推荐的spring boot版本如下:

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

 推荐的kafka依赖版本如下:

        <dependency>
            <groupId>org.springframework.kafka</groupId>
            <artifactId>spring-kafka</artifactId>
            <version>2.3.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka-clients</artifactId>
            <version>2.8.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.kafka</groupId>
            <artifactId>spring-kafka-test</artifactId>
            <scope>test</scope>
        </dependency>

 

spring boot的版本与kafka版本不兼容会报错,因此最好采用推荐的配置。

 

参考资料:

https://www.cnblogs.com/xiaostudy/p/14295850.html

 
 
 
posted @ 2022-05-04 19:16  jamstack  阅读(1903)  评论(0编辑  收藏  举报