新着情報
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
MicrometerProducerListener
、MicrometerConsumerListener
、KafkaStreamsMicrometerListener
は、TaskScheduler
で構成できるようになりました。詳細については、KafkaMetricsSupport
、JavaDocs、Micrometer サポートを参照してください。