快速導覽
我們將透過一個示例 Spring Boot 應用程式來快速瞭解 Spring for Apache Pulsar,該應用程式可以生產和消費訊息。這是一個完整的應用程式,不需要任何額外的配置,只要您在預設位置 localhost:6650 執行著一個 Pulsar 叢集。
1. 依賴
Spring Boot 應用程式只需要 spring-boot-starter-pulsar 依賴。以下列表分別展示瞭如何為 Maven 和 Gradle 定義依賴關係。
-
Maven
-
Gradle
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-pulsar</artifactId>
<version>4.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-pulsar:4.0.1-SNAPSHOT'
}
2. 應用程式程式碼
以下列表顯示了示例的 Spring Boot 應用程式用例
@SpringBootApplication
public class PulsarBootHelloWorld {
public static void main(String[] args) {
SpringApplication.run(PulsarBootHelloWorld.class, args);
}
@Bean
ApplicationRunner runner(PulsarTemplate<String> pulsarTemplate) {
return (args) -> pulsarTemplate.send("hello-pulsar-topic", "Hello Pulsar World!");
}
@PulsarListener(subscriptionName = "hello-pulsar-sub", topics = "hello-pulsar-topic")
void listen(String message) {
System.out.println("Message Received: " + message);
}
}
讓我們快速瀏覽一下這個應用程式的高階細節。稍後在文件中,我們將更詳細地瞭解這些元件。
在前面的示例中,我們大量依賴 Spring Boot 自動配置。Spring Boot 為我們的應用程式自動配置了多個元件。它自動為應用程式提供了一個 PulsarClient,生產者和消費者都使用它。
Spring Boot 還自動配置了 PulsarTemplate,我們將其注入應用程式並開始向 Pulsar 主題傳送記錄。應用程式將訊息傳送到名為 hello-pulsar 的主題。請注意,應用程式未指定任何 schema 資訊,因為 Spring for Apache Pulsar 庫會自動從您傳送的資料型別推斷 schema 型別。
我們使用 PulsarListener 註解從釋出資料的 hello-pulsar 主題消費。PulsarListener 是一個便利註解,它封裝了 Spring for Apache Pulsar 中的訊息監聽器容器基礎設施。在幕後,它建立了一個訊息監聽器容器來建立和管理 Pulsar 消費者。與常規 Pulsar 消費者一樣,使用 PulsarListener 時的預設訂閱型別是 Exclusive 模式。當記錄釋出到 hello-pulsar 主題時,Pulsarlistener 會消費它們並將其列印到控制檯。該框架還會從 PulsarListner 方法用作 payload 的資料型別(在本例中為 String)推斷使用的 schema 型別。