英文原文:https://spring.io/projects/spring-kafka
目录
概述
Spring for Apache Kafka(spring-kafka)项目将核心Spring概念应用于基于Kafka的消息传递解决方案的开发。 它提供了一个“模板”作为发送消息的高级抽象。 它还通过@KafkaListener注释和“侦听器容器”为消息驱动的POJO提供支持。 这些库促进了依赖注入和声明的使用。 在所有这些情况下,您将看到Spring Framework中的JMS支持和Spring AMQP中的RabbitMQ支持的相似之处。
特性
- KafkaTemplate
- KafkaMessageListenerContainer
- @KafkaListener
- KafkaTransactionManager
- 带嵌入式kafka服务器的spring-kafka-test jar
Kafka客户端兼容性
Apache Kafka的Spring基于纯java kafka-clients jar。 以下是兼容性矩阵:
Spring for Apache Kafka Version | Spring Integration for Apache Kafka Version |
|
2.2.x | 3.1.x | 2.0.0, 2.1.0 |
2.1.x | 3.0.x | 1.0.x, 1.1.x, 2.0.0 |
2.0.x | 3.0.x | 0.11.0.x, 1.0.x |
1.3.x | 2.3.x | 0.11.0.x, 1.0.x |
1.2.x | 2.2.x | 0.10.2.x |
1.1.x | 2.1.x | 0.10.0.x, 0.10.1.x |
1.0.x | 2.0.x | 0.9.x.x |
N/A* | 1.3.x | 0.8.2.2 |
重要提示:此矩阵是客户端兼容性;在大多数情况下(自0.10.2.0起),较新的客户可以与较旧的经纪人沟通。所有使用经纪人> = 0.10.x.x(以及所有spring boot 1.5.x用户)的用户都建议使用spring-kafka 1.3.x或更高版本,因为KIP-62的线程模型更简单。有关客户端/代理兼容性的完整讨论,请参阅Kafka兼容性矩阵
- Spring 2.0之前的Spring集成Kafka版本早于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(默认情况下,引导依赖关系管理将使用1.1.x,因此应该覆盖它)。
- Spring Boot 2.0用户应该使用2.0.x(引导依赖管理将使用正确的版本)。
- Spring Boot 2.1用户应该使用2.2.x(引导依赖管理将使用正确的版本)。
Spring Boot配置
Spring for Apache Kafka的Spring Boot自动配置
快速开始
使用Spring Initializr引导您的应用程序。
学习
文档
每个Spring项目都有自己的; 它详细解释了如何使用项目功能以及使用它们可以实现的功能。
2.2.2 CURRENT GA | Reference Doc. | API Doc. |
2.2.3 SNAPSHOT | Reference Doc. | API Doc. |
2.1.12 SNAPSHOT | Reference Doc. | API Doc. |
2.1.11 GA | Reference Doc. | API Doc. |
1.3.9 SNAPSHOT | Reference Doc. | API Doc. |
1.3.8 GA | Reference Doc. | API Doc. |
示例
尝试一些示例: