Kafka与Spring boot之间的兼容问题

spring boot虽然解决了一大票jar包依赖的兼容问题,但是在kafka方面,却有一个小坑。

使用spring boot的时候如果要融合kafka,那么自然首推spring-kafka,那么就会面临一个问题:kafka-clients & spring-kafka & spring boot 之间会存在三方面的强一致的兼容问题。

2019-07-26   链接:https://spring.io/projects/spring-kafka

spring-kafka的版本和kafka-clients的版本对应关系

忽略中间的“Spring Integration for Apache Kafka Version”,此图是spring官方描述的spring-kafka的版本和kafka-clients的版本对应关系(1对多的关系)。坑点来了。

spring-kafka和spring boot的对应关系

1.如果用的是spring boot2.1.x,那么你必须使用spring-kafka的版本是2.2.x。否则就会出现noClass等等各种异常。

2.如果你用的是2.2.x的spring-kafka,只看第一张图,你会以为2.1.x的kafka-clients也可以用。但是spring说了,此时默认用的kafka-clients是2.0.x,如果你想用2.1.x,必须看文档附录,下图的大概意思,必须换掉下图所示的所有依赖版本。


文档附录截图

总结:仔细看看官方这么短的文档,就能避免的坑点,其实也不算什么大坑。并且,spring boot会默认匹配一个兼容的的spring-kafka版本,不需要单独指定spring-kafka的版本,pom引用的时候不加version即可。比如目前spring boot版本为2.1.6,spring kafka的版本默认为2.2.7。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容