close

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-kafka2.5.x上使用嵌入式Kafka服务器时如何解决重要的Scala不兼容性的信息。此版本的Jackson包含在Spring Boot 2.3.5依赖性管理中。

Kafka客户端兼容性

Apache Kafka的Spring基于纯Java kafka-clientsjar。以下是兼容性列表:

Apache Kafka版本的Spring

Apache Kafka版本的Spring集成

kafka-clients

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

2.2.x

3.1.x

2.0.1、2.1.x,2.2.x

2.1.x(生命周期结束)

2.1.x

3.0.x

1.0.2

2.0.x(生命周期结束)

1.3.x

2.3.x

0.11.0.x,1.0.x

1.5.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

SpringInitializr

快速启动您的项目

使用 Spring Initializr引导您的应用程序 。

文献资料

每个Spring项目都有自己的项目。它详细说明了如何使用项目功能以及使用它们可以实现的功能。
2.7.1 当前 GA 参考文件 API文件
2.7.2- 快照 参考文件 API文件
2.6.8 GA 参考文件 API文件
2.5.12发布 GA 参考文件 API文件
2.4.12发布 GA 参考文件 API文件
2.3.13 GA发布 参考文件 API文件

可以尝试一些示例: