新着情報

3.0 以降の 3.1 の新機能

このセクションでは、バージョン 3.0 からバージョン 3.1 に加えられた変更について説明します。以前のバージョンでの変更については、変更履歴を参照してください。

Kafka クライアントバージョン

このバージョンには、3.6.0 kafka-clients が必要です。

EmbeddedKafkaBroker

Zookeeper の代わりに Kraft を使用する追加の実装が提供されるようになりました。詳細については、"組み込み Kafka ブローカー" を参照してください。

JsonDeserializer

逆直列化例外が発生すると、SerializationException メッセージには Can’t deserialize data [[123, 34, 98, 97, 122, …​ 形式のデータが含まれなくなります。各データバイトの数値の配列は役に立たず、大規模なデータの場合は冗長になる可能性があります。ErrorHandlingDeserializer とともに使用すると、エラーハンドラーに送信される DeserializationException には、逆直列化できなかった生データを含む data プロパティが含まれます。ErrorHandlingDeserializer とともに使用しない場合、KafkaConsumer は同じレコードに対して例外を継続的に発行し、トピック / パーティション / オフセットと Jackson によってスローされた原因を示します。

ContainerPostProcessor

@KafkaListener アノテーションで ContainerPostProcessor の Bean 名を指定することで、リスナーコンテナーに後処理を適用できます。これは、コンテナーが作成された後、およびコンテナーファクトリで構成された ContainerCustomizer が設定された後に発生します。詳細については、"コンテナーファクトリ" を参照してください。

ErrorHandlingDeserializer

これで、このデシリアライザーに Validator を追加できるようになりました。デリゲート Deserializer がオブジェクトの逆直列化に成功したが、そのオブジェクトの検証に失敗した場合は、逆直列化例外が発生した場合と同様の例外がスローされます。これにより、元の生データをエラーハンドラーに渡すことができます。詳細については、"ErrorHandlingDeserializer の使用 " を参照してください。

再試行可能なトピック

@RetryableTopic(backoff = @Backoff(delay = 5000), attempts = "2", fixedDelayTopicStrategy = FixedDelayStrategy.SINGLE_TOPIC) の場合、サフィックス -retry-5000 を -retry に変更します。サフィックス -retry-5000 を維持したい場合は、@RetryableTopic(backoff = @Backoff(delay = 5000), attempts = "2") を使用してください。詳細については、"トピックの命名" を参照してください。

リスナーコンテナーの変更

null コンシューマー group.id を使用してパーティションを手動で割り当てる場合、AckMode は自動的に MANUAL に強制されるようになりました。詳細については、"すべてのパーティションを手動で割り当てる" を参照してください。