新着情報

3.2 以降の 3.3 の新機能

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

DLT トピック命名規則

DLT トピックの命名規則は、"-dlt" サフィックスを一貫して使用するように標準化されました。この変更により互換性が確保され、異なる再試行ソリューション間の移行時に競合が回避されます。".DLT" サフィックスの動作を維持したいユーザーは、適切な DLT 名プロパティを設定して明示的にオプトインする必要があります。

コンシューマーグループ向けの拡張シーク操作

新しいメソッド getGroupId() が ConsumerSeekCallback インターフェースに追加されました。このメソッドを使用すると、目的のコンシューマーグループのみをターゲットにすることで、より選択的なシーク操作が可能になります。また、AbstractConsumerSeekAware は、マルチグループリスナーシナリオで各トピックパーティションのすべてのコールバックを登録、取得、削除できるようになりました。詳細については、新しい API (getSeekCallbacksFor(TopicPartition topicPartition)getTopicsAndCallbacks()) を参照してください。詳細については、API ドキュメントを探すを参照してください。

RecordFilterStrategy を使用した Kafka リスナーでの空のバッチの処理の設定

RecordFilterStrategy は、フィルタリングの結果生じた空のバッチを無視することをサポートするようになりました。これは、デフォルトメソッド ignoreEmptyBatch() をオーバーライドすることで設定できます。このメソッドはデフォルトで false に設定されており、すべての ConsumerRecords がフィルタリングされても KafkaListener が呼び出されます。詳細については、メッセージ受信フィルタリングドキュメントを参照してください。

ConcurrentContainerStoppedEvent

ConcurentContainerMessageListenerContainer は、すべての子コンテナーが停止すると、ConcurrentContainerStoppedEvent を発行するようになりました。詳細については、アプリケーションイベントおよび ConcurrentContainerStoppedEvent の Javadoc を参照してください。

返信の元のレコードキー

ReplyingKafkaTemplate を使用する場合、リクエストの元のレコードにキーが含まれていると、同じキーが応答の一部にもなります。詳細については、リファレンスドキュメントのメッセージ送信セクションを参照してください。

DeadLetterPublishingRecovererFactory でのログのカスタマイズ

DeadLetterPublishingRecovererFactory を使用する場合、ユーザーアプリケーションは maybeLogListenerException メソッドをオーバーライドして、ログ記録の動作をカスタマイズできます。

KafkaAdmin で管理クライアントをカスタマイズする

KafkaAdmin を継承する場合、ユーザーアプリケーションは createAdmin メソッドをオーバーライドして、管理クライアントの作成をカスタマイズできます。

Kafka ストリームの実装のカスタマイズ

KafkaStreamsCustomizer を使用する場合、initKafkaStreams メソッドをオーバーライドすることで、KafkaStreams オブジェクトのカスタム実装を返すことができるようになりました。

バッチリスナーの KafkaHeaders.DELIVERY_ATTEMPT

BatchListener を使用する場合、ConsumerRecord のヘッダーフィールドに KafkaHeaders.DELIVERY_ATTMPT ヘッダーを含めることができます。DeliveryAttemptAwareRetryListener が再試行リスナーとしてエラーハンドラーに設定されている場合、各 ConsumerRecord には配信試行ヘッダーが含まれます。詳細については、バッチリスナーの Kafka ヘッダーを参照してください。

Kafka メトリクスリスナーと TaskScheduler

MicrometerProducerListenerMicrometerConsumerListenerKafkaStreamsMicrometerListener は、TaskScheduler で構成できるようになりました。詳細については、KafkaMetricsSupport、JavaDocs、Micrometer サポートを参照してください。