クイックツアー

生成および消費するサンプル Spring Boot アプリケーションを示して、Spring for Apache Pulsar について簡単に説明します。これは完全なアプリケーションであり、デフォルトの場所 localhost:6650 で Pulsar クラスターが実行されている限り、追加の構成は必要ありません。

1. 依存関係

Spring Boot アプリケーションには、spring-boot-starter-pulsar 依存関係のみが必要です。次のリストは、MavenGradle の依存関係をそれぞれ定義する方法を示しています。

  • Maven

  • Gradle

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-pulsar</artifactId>
        <version>4.0.0-SNAPSHOT</version>
    </dependency>
</dependencies>
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-pulsar:4.0.0-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 という名前のトピックにメッセージを送信します。Spring for Apache Pulsar ライブラリは、送信するデータの型からスキーマの型を自動的に推測するため、アプリケーションではスキーマ情報が指定されないことに注意してください。

PulsarListener アノテーションを使用して、データを公開する hello-pulsar トピックから消費します。PulsarListener は、Spring for Apache Pulsar のメッセージリスナーコンテナーインフラストラクチャをラップする便利なアノテーションです。バックグラウンドで、Pulsar コンシューマーを作成および管理するためのメッセージリスナーコンテナーを作成します。通常の Pulsar コンシューマーと同様に、PulsarListener を使用する場合のデフォルトのサブスクリプション型は Exclusive モードです。レコードが hello-pulsar トピックにパブリッシュされると、Pulsarlistener はレコードを消費してコンソールに出力します。また、フレームワークは、PulsarListner メソッドがペイロードとして使用するデータ型 (この場合は String) から使用されるスキーマ型を推測します。