Quick Tour

先决条件:您必须安装并运行 Apache Kafka。然后,你必须将 Spring for Apache Kafka (spring-kafka) JAR 及其所有依赖项放在你的 classpath 中。最简单的方法是为你的构建工具申明一个依赖项。 如果你没有使用 Spring Boot,则在你的项目中申明 spring-kafka jar 作为依赖项。

  • Maven

  • Gradle

<dependency>
  <groupId>org.springframework.kafka</groupId>
  <artifactId>spring-kafka</artifactId>
  <version>{project-version}</version>
</dependency>
compile 'org.springframework.kafka:spring-kafka:{project-version}'

使用 Spring Boot 时(并且您尚未使用 start.spring.io 创建您的项目),省略版本,Boot 将自动引入与您的 Boot 版本兼容的正确版本:

  • Maven

  • Gradle

<dependency>
  <groupId>org.springframework.kafka</groupId>
  <artifactId>spring-kafka</artifactId>
</dependency>
implementation 'org.springframework.kafka:spring-kafka'

但是,最快的入门方法是使用 @"14"(或 Spring Tool Suits 和 Intellij IDEA 中的向导)并创建一个项目,选择“适用于 Apache Kafka 的 Spring”作为依赖项。

Compatibility

此快速游览适用于以下版本:

  • Apache Kafka Clients 3.6.x

  • Spring Framework 6.1.x

  • Minimum Java version: 17

Getting Started

最简单的入门方法是使用 @"15"(或 Spring Tool Suits 和 Intellij IDEA 中的向导)并创建一个项目,选择“适用于 Apache Kafka 的 Spring”作为依赖项。有关其基础结构 bean 的自主自动配置的详细信息,请参阅 @"16"。

这是一个最小的消费者应用程序。

Spring Boot Consumer App

Application
  • Java

  • Kotlin

Unresolved include directive in modules/ROOT/pages/quick-tour.adoc - include::example$java-examples/org/springframework/kafka/jdocs/started/consumer/Application.java[]
Unresolved include directive in modules/ROOT/pages/quick-tour.adoc - include::example$kotlin-examples/org/springframework/kafka/kdocs/started/consumer/Application.kt[]
application.properties
spring.kafka.consumer.auto-offset-reset=earliest

NewTopic bean 导致在代理中创建主题;如果主题已经存在,则不需要此 bean。

Spring Boot Producer App

Application
  • Java

  • Kotlin

Unresolved include directive in modules/ROOT/pages/quick-tour.adoc - include::example$java-examples/org/springframework/kafka/jdocs/started/producer/Application.java[]
Unresolved include directive in modules/ROOT/pages/quick-tour.adoc - include::example$kotlin-examples/org/springframework/kafka/kdocs/started/producer/Application.kt[]

With Java Configuration (No Spring Boot)

Spring for Apache Kafka 被设计为在 Spring 应用程序上下文中使用。例如,如果您在 Spring 上下文之外创建监听器容器,除非您满足容器实现的所有 …​Aware 接口,否则并非所有函数都能正常工作。

以下是一个不使用 Spring Boot 的应用程序示例;该应用程序同时具有 ConsumerProducer

Without Spring Boot
  • Java

  • Kotlin

Unresolved include directive in modules/ROOT/pages/quick-tour.adoc - include::example$java-examples/org/springframework/kafka/jdocs/started/noboot/Sender.java[]

Unresolved include directive in modules/ROOT/pages/quick-tour.adoc - include::example$java-examples/org/springframework/kafka/jdocs/started/noboot/Listener.java[]

Unresolved include directive in modules/ROOT/pages/quick-tour.adoc - include::example$java-examples/org/springframework/kafka/jdocs/started/noboot/Config.java[]
Unresolved include directive in modules/ROOT/pages/quick-tour.adoc - include::example$kotlin-examples/org/springframework/kafka/kdocs/started/noboot/Sender.kt[]

Unresolved include directive in modules/ROOT/pages/quick-tour.adoc - include::example$kotlin-examples/org/springframework/kafka/kdocs/started/noboot/Listener.kt[]

Unresolved include directive in modules/ROOT/pages/quick-tour.adoc - include::example$kotlin-examples/org/springframework/kafka/kdocs/started/noboot/Config.kt[]

如你所见,如果你不使用 Spring Boot,则必须定义若干基础架构 bean。