Apache Kafka的Spring
用于Apache Kafka的Spring(spring-kafka)项目将核心Spring概念应用于基于Kafka的消息传递解决方案的开发。它提供了一个“模板”作为发送消息的高级抽象。它还为带有@KafkaListener
注释和“侦听器容器”的消息驱动的POJO提供支持。这些库促进了依赖注入和声明式的使用。在所有这些情况下,您将看到与Spring框架中的JMS支持和Spring AMQP中的RabbitMQ支持相似。
特征
-
KafkaTemplate
-
KafkaMessageListenerContainer
-
@KafkaListener
-
KafkaTransactionManager
-
spring-kafka-test
嵌入式kafka服务器的jar
Scala / Jackson不兼容
请参阅此附录,以获取有关在杰克逊2.11.3或更高版本以及spring-kafka
2.5.x上使用嵌入式Kafka服务器时如何解决重要的Scala不兼容性的信息。此版本的Jackson包含在Spring Boot 2.3.5依赖性管理中。
Kafka客户端兼容性
Apache Kafka的Spring基于纯Java kafka-clients
jar。以下是兼容性列表:
Apache Kafka版本的Spring |
Apache Kafka版本的Spring集成 |
|
Spring靴 |
2.7.0 |
5.4.x |
2.7.0或2.8.0 |
2.4.x或2.5.x |
2.6.x |
5.3.x或5.4.x |
2.6.0 |
2.3.x或2.4.x |
2.5.x |
3.3.x |
2.5.1 |
2.3.x |
2.4.x |
3.2.x |
2.4.1 |
2.2.x |
2.3.x |
3.2.x |
2.3.1 |
2.2.x |
|
|
|
|
|
|
|
|
|
|
|
|
重要说明:此矩阵是客户端兼容性;有关客户端/经纪人兼容性的完整讨论,请参阅Kafka兼容性列表
-
Spring Integration Kafka 2.0之前的版本早于Spring for Apache Kafka项目,因此并非基于该版本。
当使用maven或gradle进行版本管理时,将暂时引用这些版本。
-
Spring Boot 1.5(EOL)用户应使用1.3.x(Boot依赖管理默认情况下将使用1.1.x,因此应予以覆盖)。 -
Spring Boot 2.1(EOL)用户应使用2.2.x(引导依赖性管理将使用正确的版本)。 -
Spring Boot 2.2用户应使用2.3.x(引导依赖性管理将使用正确的版本,或将版本覆盖为2.4.x)。
-
Spring Boot 2.3用户应使用2.5.x(引导依赖性管理将使用正确的版本,或将版本覆盖为2.6.x)。
-
Spring Boot 2.4用户应使用2.6.x(引导依赖管理将使用正确的版本,或将版本覆盖为2,7,x)。
-
Spring Boot 2.5用户应使用2.7.x(Boot依赖管理将使用正确的版本)。
要在Boot 2.3.x中使用2.6.x;请参阅覆盖Spring Boot依赖关系。
要在Boot 2.4.x中使用2.7.x;请参阅覆盖Spring Boot依赖关系。
重要信息Spring Boot 2.3.5和更高版本(在2.3.x行中)引入了一个Jackson版本,该版本引入了不兼容的Scala库。请参见本附录以获取更多信息,或升级spring-kafka
,并kafka-clients
与2.6.x 307