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>
