Spring for Apache Kafka
2.3.1用于Apache Kafka的Spring(spring-kafka)项目将核心Spring概念应用于基于Kafka的消息传递解决方案的开发。它提供了一个“模板”作为发送消息的高级抽象。它还通过@KafkaListener
批注和“侦听器容器”为消息驱动的POJO提供支持。这些库促进了依赖注入和声明式的使用。在所有这些情况下,您将看到与Spring Framework中的JMS支持和Spring AMQP中的RabbitMQ支持相似。
特征
-
Kafka模板
-
KafkaMessageListenerContainer
-
@KafkaListener
-
KafkaTransactionManager
-
带有嵌入式kafka服务器的
spring-kafka-test
jar
Kafka客户端兼容性
Apache Kafka的Spring基于纯Java kafka-clients
jar。以下是兼容性列表:
Apache Kafka版本的 Spring |
Apache Kafka版本的Spring集成 |
|
2.3.x |
3.2.x |
2.3.0 |
2.2.x |
3.1.x |
2.0.1、2.1.x,2.2.x |
2.1.x |
3.0.x |
1.0.x,1.1.x,2.0.0 |
1.3.x |
2.3.x |
0.11.0.x,1.0.x |
重要说明:此矩阵是客户端兼容性;在大多数情况下(自0.10.2.0起),较新的客户端可以与较旧的代理进行通信。由于KIP-62的线程模型更简单,因此建议所有代理> = 0.10.xx的用户(以及所有spring boot 1.5.x用户)使用spring-kafka版本1.3.x或更高版本。有关客户端/经纪人兼容性的完整讨论,请参阅Kafka 兼容性列表
-
Spring Integration Kafka 2.0之前的版本早于Spring for Apache Kafka项目,因此并非基于该版本。
使用maven或gradle进行版本管理时,将暂时引用这些版本。对于1.1.x版本,默认值为0.10.1.x。
2.1.x默认使用1.1.x kafka-clients。当覆盖2.1.x的kafka-clients时,请参阅文档附录 。
2.2.x默认使用2.0.x kafka-clients。当覆盖2.2.x的kafka-clients时,请参阅文档附录 。
-
Spring Boot 1.5用户应使用1.3.x(Boot依赖管理默认情况下将使用1.1.x,因此应予以覆盖)。
-
Spring Boot 2.0用户应使用2.0.x(引导依赖性管理将使用正确的版本)。
-
Spring Boot 2.1用户应使用2.2.x(引导依赖性管理将使用正确的版本)。