kafka使用的难点之一就是他的版本,之前也写过关于版本的一个总结,连带的在springboot集成过程中也很容易出现版本问题,这里结合kafka,借此总结下
如何基于当前的springboot版本,决定是使用对应的默认版本,还是自定义版本
首先打开pom,查看springboot版本如下:
然后点击箭头的artifactId,进入到spring-boot-starter-parent-2.1.6.RELEASE.pom如下:
继续点击箭头的artifactId,进入spring-boot-dependencies-2.1.6.RELEASE.pom如下:
重点看properties标签,这里管理的就是该版本的springboot自带的,对应的一些jar包的默认版本号
上述截图只有一部分,拿我的springboot版本举例,挑了一些重要的
<commons-lang3.version>3.8.1</commons-lang3.version> <cassandra-driver.version>3.6.0</cassandra-driver.version> <elasticsearch.version>6.4.3</elasticsearch.version> <jackson.version>2.9.9</jackson.version> <jedis.version>2.9.3</jedis.version> <lettuce.version>5.1.7.RELEASE</lettuce.version> <lombok.version>1.18.8</lombok.version> <kafka.version>2.0.1</kafka.version> <postgresql.version>42.2.5</postgresql.version> <spring.version>5.1.8.RELEASE</spring.version> <spring-kafka.version>2.2.7.RELEASE</spring-kafka.version>
最后,拉到下面,点击dependencyManagement收起,可以看到如下:
这个标签在pom里代表jar包的管理,并没有真正引入这些jar,所以有时候我们在真正引入某些jar的时候并没有写version,依然下载到了对应的jar
下图是在新版本kafka(2.2.1)集成过程中的踩坑走过来的,kafka版本实在是磨人......
SpringBoot:代表springboot的版本,我的是2.1.6
kafka-clients:这是kafka原生的API包
Spring for Apache Kafka version:代表spring集成kafka的插件版本,注意spring-kafka包是包含kafka-clients包的
现在,只需要在maven-repository官网找到2.2.x的spring-kafka的包(尽量挑最新的),导入即可
<dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> <version>2.2.11.RELEASE</version> </dependency>