Spring 對Apache Kafka的支援與整合
阿新 • • 發佈:2020-11-26
## 1. 引言
Apache Kafka 是一個分散式的、容錯的流處理系統。在本文中,我們將介紹Spring對Apache Kafka的支援,以及原生Kafka Java客戶端Api 所提供的抽象級別。
Spring Kafka 通過 *@KafkaListener* 註解,帶來了一個簡單而典型的 Spring 模板程式設計模型,它還帶有一個 *KafkaTemplate* 和訊息驅動的 POJO 。
## **2. 安裝和設定**
要下載和安裝Kafka,請參考官方指南。然後還需要在 `pom.xml` 檔案中新增 `spring-kafka`:
```xml
```
新建一個 Spring Boot 示例應用程式,以預設配置啟動。
## 3. 配置 Topics
以前我們使用命令列工具在 `Kafka` 中建立 `topic`,例如:
```bash
$ bin/kafka-topics.sh --create \
--zookeeper localhost:2181 \
--replication-factor 1 --partitions 1 \
--topic mytopic
```
但是隨著 *AdminClient* 在Kafka中的引入,我們現在可以通過程式設計來建立 `Topic` 。
如下程式碼,新增 `KafkAdmin` bean 到 Spring中,它將自動為 `NewTopic` 類的所有 `bean` 新增 `topic` :
```java
@Configuration
public class KafkaTopicConfig {
@Value(value = "${kafka.bootstrapAddress}")
private String bootstrapAddress;
@Bean
public KafkaAdmin kafkaAdmin() {