新着情報
1.2 以降の 2.0 の新機能
このセクションでは、バージョン 1.2 からバージョン 2.0 に加えられた変更について説明します。
Spring Retry をコアリトライに置き換え
Spring Retry のすべての使用箇所は、最近 Spring Framework で導入されたより単純な再試行メカニズムに置き換えられました。
これは主に、メッセージコンテナーを再起動する際に使用される内部実装の詳細です。これは、PulsarContainerFactoryCustomizer Bean を介してカスタム RetryTemplate を提供していた場合にのみ影響します。
RetryTemplate クラスは Core Retry にまだ存在しますが、パッケージ名は org.springframework.retry.support から org.springframework.core.retry に変更され、API も若干変更されています。
詳細についてはコミット [GitHub] (英語) を参照してください。
削除
以前に非推奨となりた API
バージョン 2.0.x で削除対象としてマークされていた以下の非推奨 API は、現在削除されています。
org.springframework.pulsar.config.ConcurrentPulsarListenerContainerFactory#setConcurrencyorg.springframework.pulsar.config.ConcurrentPulsarListenerContainerFactoryCustomizerorg.springframework.pulsar.config.ListenerContainerFactory#createListenerContainerorg.springframework.pulsar.config.ReaderContainerFactory#createReaderContainerorg.springframework.pulsar.config.ProducerBuilderConfigurationUtilorg.springframework.pulsar.config.PulsarClientProxy#getPartitionsForTopicorg.springframework.pulsar.config.PulsarTopic#builderorg.springframework.pulsar.config.PulsarTopic#getFullyQualifiedTopicNameorg.springframework.pulsar.config.Resolved#getorg.springframework.pulsar.test.support.model.UserPojoorg.springframework.pulsar.test.support.model.UserRecord
1.1 以降の 1.2 の新機能
このセクションでは、バージョン 1.1 からバージョン 1.2 に加えられた変更について説明します。
カスタムオブジェクトマッパー
Pulsar が JSON メッセージの生成と使用時に使用する独自の Jackson ObjectMapper を提供できます。詳細については、カスタムオブジェクトマッパーを参照してください。
デフォルトのテナントと名前空間
完全修飾されていないトピック URL に対してメッセージを生成または消費するときに使用するデフォルトのテナントおよび / または名前空間を指定できます。詳細については、デフォルトのテナント / 名前空間を参照してください。
メッセージコンテナーの起動ポリシー
メッセージリスナーコンテナーの起動失敗ポリシーを stop、continue、または retry に設定できるようになりました。詳細については、サポートされているコンテナー @PulsarListener または @PulsarReader の該当セクションを参照してください。
メッセージコンテナーファクトリカスタマイザー (Spring Boot)
Spring Boot は、次のリスナーアノテーションをサポートする 1 つ以上の自動構成されたコンテナーファクトリをさらに構成するために使用できる汎用メッセージコンテナーファクトリカスタマイザー org.springframework.boot.pulsar.autoconfigure.PulsarContainerFactoryCustomizer<T extends PulsarContainerFactory<?, ?>> を導入しました。
@PulsarListenerの場合、1 つ以上の PulsarContainerFactoryCustomizer<ConcurrentPulsarListenerContainerFactory<?>> Bean を登録します。@PulsarReaderの場合、1 つ以上の PulsarContainerFactoryCustomizer<DefaultPulsarReaderContainerFactory<?>> 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.pulsar.autoconfigure.PulsarContainerFactoryCustomizer<T extends PulsarContainerFactory<?, ?>> が導入されました。
ConcurrentPulsarListenerContainerFactoryCustomizer のすべてのインスタンスを org.springframework.boot.pulsar.autoconfigure.PulsarContainerFactoryCustomizer<ConcurrentPulsarListenerContainerFactoryCustomizer<?>> に置き換えます。
削除
以前は非推奨だった次のリスナーエンドポイントアダプターは、リスナーエンドポイントインターフェースのデフォルトメソッドに置き換えられて削除されました。
org.springframework.pulsar.config.PulsarListenerEndpointAdapterorg.springframework.pulsar.reactive.config.ReactivePulsarListenerEndpointAdapter
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 アプリケーションのテストに利用できるようになりました。詳細については、アプリケーションのテストを参照してください。