新着情報

1.1 以降の 1.2 の新機能

このセクションでは、バージョン 1.1 からバージョン 1.2 に加えられた変更について説明します。

カスタムオブジェクトマッパー

Pulsar が JSON メッセージの生成と使用時に使用する独自の Jackson ObjectMapper を提供できます。詳細については、カスタムオブジェクトマッパーを参照してください。

デフォルトのテナントと名前空間

完全修飾されていないトピック URL に対してメッセージを生成または消費するときに使用するデフォルトのテナントおよび / または名前空間を指定できます。詳細については、デフォルトのテナント / 名前空間を参照してください。

メッセージコンテナーの起動ポリシー

メッセージリスナーコンテナーの起動失敗ポリシーを stopcontinueretry に設定できるようになりました。詳細については、サポートされているコンテナー @PulsarListener@PulsarReader@ReactivePulsarListener の対応するセクションを参照してください。

メッセージコンテナーファクトリカスタマイザー (Spring Boot)

Spring Boot は、次のリスナーアノテーションをサポートする 1 つ以上の自動構成されたコンテナーファクトリをさらに構成するために使用できる汎用メッセージコンテナーファクトリカスタマイザー org.springframework.boot.autoconfigure.pulsar.PulsarContainerFactoryCustomizer<T extends PulsarContainerFactory<?, ?>> を導入しました。

  • @PulsarListener の場合、1 つ以上の PulsarContainerFactoryCustomizer<ConcurrentPulsarListenerContainerFactory<?>> Bean を登録します。

  • @PulsarReader の場合、1 つ以上の PulsarContainerFactoryCustomizer<DefaultPulsarReaderContainerFactory<?>> Bean を登録します。

  • @ReactivePulsarListener の場合、1 つ以上の PulsarContainerFactoryCustomizer<DefaultReactivePulsarListenerContainerFactory<?>> Bean を登録します。

非推奨

PulsarClient#getPartitionsForTopic(java.lang.String)

Pulsar クライアントのバージョン 3.3.1 では、getPartitionsForTopic(java.lang.String) が廃止され、代わりに getPartitionsForTopic(java.lang.String, boolean metadataAutoCreationEnabled) が採用されています。

パルサートピック # ビルダー

Spring Boot を使用する場合、PulsarTopicBuilder はドメイン、テナント、名前空間のデフォルト値で構成された登録済みの Bean になります。Spring Boot を使用している場合は、必要な場所にビルダーを挿入するだけで済みます。それ以外の場合は、PulsarTopicBuilder コンストラクターの 1 つを直接使用します。

リスナー /ReaderContainerFactory

PulsarContainerFactory 共通インターフェースは、リスナーコンテナーファクトリとリーダーコンテナーファクトリ間のギャップを埋めるために導入されました。この一環として、次の API が非推奨となり、コピーされ、名前が変更されました。

  • ListenerContainerFactory#createListenerContainer は ListenerContainerFactory#createRegisteredContainer に置き換えられました

  • ReaderContainerFactory#createReaderContainer(E endpoint) は ReaderContainerFactory#createRegisteredContainer に置き換えられました

  • ReaderContainerFactory#createReaderContainer(String…​ topics) は ReaderContainerFactory#createContainer に置き換えられました

ConcurrentPulsarListenerContainerFactoryCustomizer

ConcurrentPulsarListenerContainerFactoryCustomizer の目的は、Spring Boot の自動構成されたメッセージコンテナーファクトリをカスタマイズすることでした。ただし、Spring Boot では、このカスタマイザーの必要性を排除する汎用メッセージコンテナーファクトリカスタマイザー org.springframework.boot.autoconfigure.pulsar.PulsarContainerFactoryCustomizer<T extends PulsarContainerFactory<?, ?>> が導入されました。

ConcurrentPulsarListenerContainerFactoryCustomizer のすべてのインスタンスを org.springframework.boot.autoconfigure.pulsar.PulsarContainerFactoryCustomizer<ConcurrentPulsarListenerContainerFactoryCustomizer<?>> に置き換えます。

削除

以前は非推奨だった次のリスナーエンドポイントアダプターは、リスナーエンドポイントインターフェースのデフォルトメソッドに置き換えられて削除されました。

  • org.springframework.pulsar.config.PulsarListenerEndpointAdapter

  • org.springframework.pulsar.reactive.config.ReactivePulsarListenerEndpointAdapter

重大な変更

パルサートピック #<init>

PulsarTopic コンストラクターには、完全修飾トピック名 (domain://tenant/namespace/name) が必要になりました。コンストラクターを呼び出す場合は、渡すトピックが完全修飾されていることを確認する必要があります。より良い代替策は、代わりに PulsarTopicBuilder を使用することです。これは完全修飾名を必要とせず、指定された名前の不足しているコンポーネントにデフォルト値を追加します。

PulsarReaderFactory#createReader

PulsarReaderFactory#createReader API は、チェック済みの PulsarClientException ではなく、チェックされていない PulsarException をスローするようになりました。この API の try/catch ブロックを適宜置き換えてください。

1.0 以降の 1.1 の新機能

このセクションでは、バージョン 1.0 からバージョン 1.1 に加えられた変更について説明します。

自動スキーマのサポート

Pulsar トピックのスキーマを事前に知る機会がない場合は、AUTO スキーマを使用して、ブローカーとの間で汎用レコードを生成または消費できます。詳細については、AUTO_SCHEMA を使用した生産および AUTO_SCHEMA での使用を参照してください。

上記のリンクは PulsarTemplate と @PulsarListener に焦点を当てていますが、この機能は ReactivePulsarTemplate@ReactivePulsarListener@PulsarReader でもサポートされています。それぞれの詳細については、このリファレンスガイドのそれぞれのセクションを参照してください。

メッセージアノテーションによるデフォルトのトピック / スキーマ

メッセージクラスを @PulsarMessage でマークして、その型のメッセージを生成 / 消費するときに使用するデフォルトのトピックデフォルトのスキーマを指定できるようになりました。

チェックされた例外を削除する

フレームワークによって提供される API は、チェックされた PulsarClientException をスローするのではなく、チェックされていない PulsarException をスローするようになりました。

以前にコンパイラーをなだめるためだけに PulsarClientException をキャッチまたは再スローしていて、実際には例外を処理していなかった場合は、単純に catch または throws 句を削除できます。実際に例外を処理していた場合は、catch 句で PulsarClientException を PulsarException に置き換える必要があります。

テストサポート

spring-pulsar-test モジュールは、Spring for Apache Pulsar アプリケーションのテストに利用できるようになりました。詳細については、アプリケーションのテストを参照してください。