Pulsar 管理

1. Pulsar 管理クライアント

Pulsar 管理側では、Spring Boot 自動構成により、Pulsar クラスターを管理するための PulsarAdministration が提供されます。管理者は PulsarAdminOperations と呼ばれるインターフェースを実装し、契約を通じてトピック管理を処理する createOrModify 方式 (Javadoc) を提供します。

Pulsar Spring Boot スターターを使用すると、PulsarAdministration が自動構成されます。

デフォルトでは、アプリケーションは http://localhost:8080 にあるローカル Pulsar インスタンスへの接続を試行します。これは、spring.pulsar.admin.service-url プロパティを (http|https)://<host>:<port> の形式で別の値に設定することで調整できます。

クライアントの構成に使用できるアプリケーションプロパティが多数あります。spring.pulsar.admin.* (英語) アプリケーションのプロパティを参照してください。

1.1. 認証

認証が必要な Pulsar クラスターにアクセスする場合、管理クライアントには通常の Pulsar クライアントと同じセキュリティ構成が必要です。spring.pulsar.client を spring.pulsar.admin に置き換えることで、前述のセキュリティ構成を使用できます。

2. トピックの自動作成

初期化時に、PulsarAdministration はアプリケーションコンテキストに PulsarTopic Bean があるかどうかを確認します。このようなすべての Bean に対して、PulsarAdministration は対応するトピックを作成するか、必要に応じてパーティションの数を変更します。

次の例は、PulsarTopic Bean を追加して、PulsarAdministration にトピックを自動作成させる方法を示しています。

@Bean
PulsarTopic simpleTopic(PulsarTopicBuilder topicBuilder) {
    // This will create a non-partitioned persistent topic in the 'public/default' tenant/namespace
    return topicBuilder.name("my-topic").build();
}

@Bean
PulsarTopic partitionedTopic(PulsarTopicBuilder topicBuilder) {
    // This will create a persistent topic with 3 partitions in the provided tenant and namespace
    return topicBuilder
        .name("persistent://my-tenant/my-namespace/partitioned-topic")
        .numberOfPartitions(3)
        .build();
}

When using Spring Boot the PulsarTopicBuilder is a registered bean that is configured with default values for domain, tenant, and namespace. You can simply inject the builder where needed. Otherwise, use one of the PulsarTopicBuilder constructors directly.