获取:
创建名为"embeddedKafka"的bean时出错
引起原因:java.lang.ClassNotFoundException:com.codahal.metrics.Reservoir
<kafka.version>2.8.1</kafka.version>
<spring.kafka.version>2.8.1</spring.kafka.version>
springboot版本:2.6.3-无法更改
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-kafka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
<version>${spring.kafka.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>${spring.boot.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka-test</artifactId>
<version>${spring.kafka.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<classifier>test</classifier>
<scope>test</scope>
<version>${kafka.version}</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.13</artifactId>
<classifier>test</classifier>
<scope>test</scope>
<version>${kafka.version}</version>
</dependency>
冲突在哪里?也许是其他的依赖?
请按照文档中的说明进行操作:https://docs.spring.io/spring-kafka/docs/2.8.1/reference/html/#update-deps。
考虑在这一代中使用最新的Spring for Apache Kafka:https://spring.io/projects/spring-kafka#learn.
看起来有什么东西带来了不兼容的Zookeeper版本,我们在提到的版本的文档中对此有一个特别的评论:
<!-- needed if downgrading to Apache Kafka 2.8.1 -->
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
更新
这个pom对我有用:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>so-73113638</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>so-73113638</name>
<description>so-73113638</description>
<properties>
<java.version>1.8</java.version>
<kafka.version>2.8.1</kafka.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
我只提供了一个kafka.version
属性,并依靠Spring Boot功能为我管理deps
您需要使用Zookeeper 3.6.3;卡夫卡不再把它转换过来。