SpringBoot整合kafka遇到的版本不对应问题及解决

目录
  • SpringBoot整合kafka遇到版本不对应
    • 如果你的SpringBoot是2.0.3版本
    • 如果你的SpringBoot比较新,用的2.1.0版本
  • SpringBoot整合kafka问题的注意事项

SpringBoot整合kafka遇到版本不对应

SpringBoot 整合 kafka 需要在SpringBoot项目里增加kafka的jar,而最为关键的一点是版本要对应好。

如果你的SpringBoot是2.0.3版本

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

那么你可以用2.1.7版本的kafka

        <!-- kafka -->        <dependency>            <groupId>org.springframework.kafka</groupId>            <artifactId>spring-kafka</artifactId>            <version>2.1.7.RELEASE</version>        </dependency>

如果你的SpringBoot比较新,用的2.1.0版本

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

那么对应的,你的kafka也应该用新版本

        <!-- https://mvnrepository.com/artifact/org.springframework.kafka/spring-kafka -->        <dependency>            <groupId>org.springframework.kafka</groupId>            <artifactId>spring-kafka</artifactId>            <version>2.2.0.RELEASE</version>        </dependency>

当然,版本号可能其他方式也可以。

不过如果你用2.1.0版本的SpringBoot,却仍使用2.1.7版本的kafka,则会遇到如下错误:

D:\DevelopFiles\Java\jdk1.8.0_131\bin\java.exe -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8247 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=localhost -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2018.2.4\lib\idea_rt.jar=8248:C:\Program Files\JetBrains\IntelliJ IDEA 2018.2.4\bin" -Dfile.encoding=UTF-8 -classpath D:\DevelopFiles\Java\jdk1.8.0_131\jre\lib\charsets.jar;D:\DevelopFiles\Java\jdk1.8.0_131\jre\lib\deploy.jar;D:\DevelopFiles\Java\jdk1.8.0_131\jre\lib\ext\access-bridge-64.jar;D:\DevelopFiles\Java\jdk1.8.0_131\jre\lib\ext\cldrdata.jar;D:\DevelopFiles\Java\jdk1.8.0_131\jre\lib\ext\dnsns.jar;D:\DevelopFiles\Java\jdk1.8.0_131\jre\lib\ext\jaccess.jar;D:\DevelopFiles\Java\jdk1.8.0_131\jre\lib\ext\jfxrt.jar;D:\DevelopFiles\Java\jdk1.8.0_131\jre\lib\ext\localedata.jar;D:\DevelopFiles\Java\jdk1.8.0_131\jre\lib\ext\nashorn.jar;D:\DevelopFiles\Java\jdk1.8.0_131\jre\lib\ext\sunec.jar;D:\DevelopFiles\Java\jdk1.8.0_131\jre\lib\ext\sunjce_provider.jar;D:\DevelopFiles\Java\jdk1.8.0_131\jre\lib\ext\sunmscapi.jar;D:\DevelopFiles\Java\jdk1.8.0_131\jre\lib\ext\sunpkcs11.jar;D:\DevelopFiles\Java\jdk1.8.0_131\jre\lib\ext\zipfs.jar;D:\DevelopFiles\Java\jdk1.8.0_131\jre\lib\javaws.jar;D:\DevelopFiles\Java\jdk1.8.0_131\jre\lib\jce.jar;D:\DevelopFiles\Java\jdk1.8.0_131\jre\lib\jfr.jar;D:\DevelopFiles\Java\jdk1.8.0_131\jre\lib\jfxswt.jar;D:\DevelopFiles\Java\jdk1.8.0_131\jre\lib\jsse.jar;D:\DevelopFiles\Java\jdk1.8.0_131\jre\lib\management-agent.jar;D:\DevelopFiles\Java\jdk1.8.0_131\jre\lib\plugin.jar;D:\DevelopFiles\Java\jdk1.8.0_131\jre\lib\resources.jar;D:\DevelopFiles\Java\jdk1.8.0_131\jre\lib\rt.jar;D:\workspace\IDEA\chinaunicom\alarm-query-kafka\target\classes;D:\DevelopFiles\Maven\m2\org\springframework\boot\spring-boot-starter\2.1.0.RELEASE\spring-boot-starter-2.1.0.RELEASE.jar;D:\DevelopFiles\Maven\m2\org\springframework\boot\spring-boot\2.1.0.RELEASE\spring-boot-2.1.0.RELEASE.jar;D:\DevelopFiles\Maven\m2\org\springframework\boot\spring-boot-autoconfigure\2.1.0.RELEASE\spring-boot-autoconfigure-2.1.0.RELEASE.jar;D:\DevelopFiles\Maven\m2\org\springframework\boot\spring-boot-starter-logging\2.1.0.RELEASE\spring-boot-starter-logging-2.1.0.RELEASE.jar;D:\DevelopFiles\Maven\m2\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;D:\DevelopFiles\Maven\m2\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;D:\DevelopFiles\Maven\m2\org\apache\logging\log4j\log4j-to-slf4j\2.11.1\log4j-to-slf4j-2.11.1.jar;D:\DevelopFiles\Maven\m2\org\apache\logging\log4j\log4j-api\2.11.1\log4j-api-2.11.1.jar;D:\DevelopFiles\Maven\m2\org\slf4j\jul-to-slf4j\1.7.25\jul-to-slf4j-1.7.25.jar;D:\DevelopFiles\Maven\m2\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;D:\DevelopFiles\Maven\m2\org\springframework\spring-core\5.1.2.RELEASE\spring-core-5.1.2.RELEASE.jar;D:\DevelopFiles\Maven\m2\org\springframework\spring-jcl\5.1.2.RELEASE\spring-jcl-5.1.2.RELEASE.jar;D:\DevelopFiles\Maven\m2\org\yaml\snakeyaml\1.23\snakeyaml-1.23.jar;D:\DevelopFiles\Maven\m2\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar;D:\DevelopFiles\Maven\m2\org\springframework\kafka\spring-kafka\2.1.7.RELEASE\spring-kafka-2.1.7.RELEASE.jar;D:\DevelopFiles\Maven\m2\org\springframework\spring-context\5.1.2.RELEASE\spring-context-5.1.2.RELEASE.jar;D:\DevelopFiles\Maven\m2\org\springframework\spring-aop\5.1.2.RELEASE\spring-aop-5.1.2.RELEASE.jar;D:\DevelopFiles\Maven\m2\org\springframework\spring-beans\5.1.2.RELEASE\spring-beans-5.1.2.RELEASE.jar;D:\DevelopFiles\Maven\m2\org\springframework\spring-expression\5.1.2.RELEASE\spring-expression-5.1.2.RELEASE.jar;D:\DevelopFiles\Maven\m2\org\springframework\spring-messaging\5.1.2.RELEASE\spring-messaging-5.1.2.RELEASE.jar;D:\DevelopFiles\Maven\m2\org\springframework\spring-tx\5.1.2.RELEASE\spring-tx-5.1.2.RELEASE.jar;D:\DevelopFiles\Maven\m2\org\springframework\retry\spring-retry\1.2.2.RELEASE\spring-retry-1.2.2.RELEASE.jar;D:\DevelopFiles\Maven\m2\org\apache\kafka\kafka-clients\2.0.0\kafka-clients-2.0.0.jar;D:\DevelopFiles\Maven\m2\org\lz4\lz4-java\1.4.1\lz4-java-1.4.1.jar;D:\DevelopFiles\Maven\m2\org\xerial\snappy\snappy-java\1.1.7.1\snappy-java-1.1.7.1.jar;D:\DevelopFiles\Maven\m2\com\alibaba\fastjson\1.2.47\fastjson-1.2.47.jar;D:\DevelopFiles\Maven\m2\org\apache\commons\commons-lang3\3.8.1\commons-lang3-3.8.1.jar com.unicom.AlarmQueryKafkaApplication   .   ____          _            __ _ _ /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/  ___)| |_)| | | | | || (_| |  ) ) ) )  '  |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot ::        (v2.1.0.RELEASE)2018-10-31 19:53:47.061  INFO 14260 --- [           main] com.unicom.AlarmQueryKafkaApplication    : Starting AlarmQueryKafkaApplication on SHNWANGC260 with PID 14260 (D:\workspace\IDEA\chinaunicom\alarm-query-kafka\target\classes started by wangc260 in D:\workspace\IDEA\chinaunicom)2018-10-31 19:53:47.068  INFO 14260 --- [           main] com.unicom.AlarmQueryKafkaApplication    : No active profile set, falling back to default profiles: default2018-10-31 19:53:48.299  INFO 14260 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.kafka.annotation.KafkaBootstrapConfiguration' of type [org.springframework.kafka.annotation.KafkaBootstrapConfiguration$$EnhancerBySpringCGLIB$$60ef0a74] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)2018-10-31 19:53:48.524  WARN 14260 --- [           main] s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'springConsumer' defined in file [D:\workspace\IDEA\chinaunicom\alarm-query-kafka\target\classes\com\unicom\kafka\SpringConsumer.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'batchFactory' defined in class path resource [com/unicom/kafka/kafkaConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.kafka.config.KafkaListenerContainerFactory]: Factory method 'batchFactory' threw exception; nested exception is java.lang.NoSuchMethodError: org.springframework.kafka.config.ConcurrentKafkaListenerContainerFactory.getContainerProperties()Lorg/springframework/kafka/listener/ContainerProperties;2018-10-31 19:53:48.536  INFO 14260 --- [           main] ConditionEvaluationReportLoggingListener : Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.2018-10-31 19:53:48.551 ERROR 14260 --- [           main] o.s.b.d.LoggingFailureAnalysisReporter   : ***************************APPLICATION FAILED TO START***************************Description:An attempt was made to call the method org.springframework.kafka.config.ConcurrentKafkaListenerContainerFactory.getContainerProperties()Lorg/springframework/kafka/listener/ContainerProperties; but it does not exist. Its class, org.springframework.kafka.config.ConcurrentKafkaListenerContainerFactory, is available from the following locations:    jar:file:/D:/DevelopFiles/Maven/m2/org/springframework/kafka/spring-kafka/2.1.7.RELEASE/spring-kafka-2.1.7.RELEASE.jar!/org/springframework/kafka/config/ConcurrentKafkaListenerContainerFactory.classIt was loaded from the following location:    file:/D:/DevelopFiles/Maven/m2/org/springframework/kafka/spring-kafka/2.1.7.RELEASE/spring-kafka-2.1.7.RELEASE.jarAction:Correct the classpath of your application so that it contains a single, compatible version of org.springframework.kafka.config.ConcurrentKafkaListenerContainerFactoryProcess finished with exit code 1

SpringBoot整合kafka问题的注意事项

要想外网的机器可以连接成功需要在kafka的server.properties配置文件中需要如下配置

这个需要注意一下,填写主机IP的时候不能写localhost,如果这样写外边的主机是无法连接kafka的,需要标明具体的机器外网IP。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 解决SpringBoot整合RocketMQ遇到的坑

    应用场景 在实现RocketMQ消费时,一般会用到@RocketMQMessageListener注解定义Group.Topic以及selectorExpression(数据过滤.选择的规则)为了能支持动态筛选数据,一般都会使用表达式,然后通过apollo或者cloud config进行动态切换. 引入依赖 <!-- RocketMq Spring Boot Starter--> <dependency> <groupId>org.apache.rocketmq<

  • SpringBoot集成Kafka的步骤

    SpringBoot集成Kafka 本篇主要讲解SpringBoot 如何集成Kafka ,并且简单的 编写了一个Demo 来测试 发送和消费功能 前言 选择的版本如下: springboot : 2.3.4.RELEASE spring-kafka : 2.5.6.RELEASE kafka : 2.5.1 zookeeper : 3.4.14 本Demo 使用的是 SpringBoot 比较高的版本 SpringBoot 2.3.4.RELEASE 它会引入 spring-kafka 2.5

  • 关于spring boot整合kafka+注解方式

    目录 spring boot自动配置方式整合 spring boot自动配置的不足 spring boot下手动配置kafka 批量消费消息 spring boot整合kafka报错 spring boot自动配置方式整合 spring boot具有许多自动化配置,对于kafka的自动化配置当然也包含在内,基于spring boot自动配置方式整合kafka,需要做以下步骤. 引入kafka的pom依赖包 <!-- https://mvnrepository.com/artifact/org.s

  • Springboot集成Kafka进行批量消费及踩坑点

    目录 引入依赖 创建配置类 Kafka 消费者 引入依赖 <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> <version>1.3.11.RELEASE</version> </dependency> 因为我的项目的 springboot 版本是 1.5.22.RELE

  • SpringBoot整合kafka遇到的版本不对应问题及解决

    目录 SpringBoot整合kafka遇到版本不对应 如果你的SpringBoot是2.0.3版本 如果你的SpringBoot比较新,用的2.1.0版本 SpringBoot整合kafka问题的注意事项 SpringBoot整合kafka遇到版本不对应 SpringBoot 整合 kafka 需要在SpringBoot项目里增加kafka的jar,而最为关键的一点是版本要对应好. 如果你的SpringBoot是2.0.3版本     <parent>        <groupId&

  • Springboot整合kafka的示例代码

    目录 1. 整合kafka 2. 消息发送 2.1 发送类型 2.2 序列化 2.3 分区策略 3. 消息消费 3.1 消息组别 3.2 位移提交 1. 整合kafka 1.引入依赖 <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> </dependency> 2.设置yml文件 spring:

  • SpringBoot整合Kafka工具类的详细代码

    目录 kafka是什么? 应用场景 kafka是什么? Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据. 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素. 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决. 对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案.Kafka的

  • Springboot微服务项目整合Kafka实现文章上下架功能

    目录 前言: 一:Kafka消息发送快速入门 1.传递字符串消息 (1)发送消息 (2)监听消息 (3)测试结果 2.传递对象消息 (1)修改生产者代码 (2)结果测试 二:功能引入 1.需求分析 2.逻辑分析 三:前期准备 1.引入依赖 2.定义常量 3.Kafka配置信息 四:代码实现 1.自媒体端 2.移动端 前言: 1.前面基于Springboot的单体项目介绍已经完结了,至于项目中的其他功能实现我这里就不打算介绍了,因为涉及的知识点不难,而且都是简单的CRUD操作,假如有兴趣的话可以私

  • Springboot整合Redis与数据持久化

    目录 Springboot整合Redis 使用json方式存储 序列化方式存储数据 MySQL与Redis一致性解决同步问题 Redis持久化机制 全量同步与增量同步 RDB与AOF RDB AOF Springboot整合Redis 有两种存储数据的方式: 方案1:在Redis存放一个对象 使用json序列化与反序列化 方案2:直接使用redis自带序列化方式存储对象 maven依赖 <parent> <groupId>org.springframework.boot</g

  • springboot整合freemarker的踩坑及解决

    目录 springboot整合freemarker踩坑 报错 问题原因 解决方法 springboot freemarker基础配置及使用 1.基础配置 2.基础使用 springboot整合freemarker踩坑 报错 2021-04-23 02:01:18.148 ERROR 9484 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatc

  • SpringBoot整合Flyway的方法(数据库版本迁移工具)

    Flyway是什么 Flyway是一款开源的数据库版本管理工具,Flyway可以独立于应用实现管理并跟踪数据库的变更,Flyway根据自己的约定,不需要复杂的配置就可以实现数据的Migrate.Migrations可以写成SQL脚本,也可以写在Java代码中,Flyway还支持Spring Boot. 简介 在团队开发当中,有可能每个人都是使用自己本地的数据库.当数据库的表或者字段更新时,往往需要告知团队的其他同事进行更新. Flyway数据库版本迁移工具,目的就是解决该问题而诞生的(我自己想的

  • 解决springboot整合cxf启动报错,原因是版本问题

    springboot整合cxf启动报错 错误信息如下 [DEBUG] 2021-01-26 11:28:47,848 [main] org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter - Application failed to start due to an exception org.springframework.beans.factory.NoSuchBeanDefinitionException: N

  • springboot整合mongodb changestream的示例代码

    目录 前言 ChangeStream介绍 环境准备 Java客户端操作changestream 1.引入maven依赖 2.测试类核心代码 下面来看看具体的整合步骤 1.引入核心依赖 2.核心配置文件 3.编写实体类,映射comment集合中的字段 4.编写一个服务类 5.编写一个接口 6.接下来,只需要依次添加下面3个配置类即可 典型应用场景 数据迁移 应用监控 对接大数据应用 前言 changestream是monggodb的3.6版本之后出现的一种基于collection(数据库集合)的变

随机推荐