クラス DeadLetterPublishingRecovererFactory
java.lang.ObjectSE
org.springframework.kafka.retrytopic.DeadLetterPublishingRecovererFactory
DestinationTopicResolver を使用してメッセージを転送するために使用される DeadLetterPublishingRecoverer を作成および構成します。- 導入:
- 2.7
- 作成者:
- Tomaz Fernandes, Gary Russell, Soby Chacko, Artem Bilan
ネストされたクラスの要約
ネストされたクラスコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明final voidaddNotRetryableException(ClassSE<? extends ExceptionSE> exceptionType) 例外型をデフォルトリストに追加します。void試行ごとにリスナー例外をログに記録します。protected voidmaybeLogListenerException(ExceptionSE exception, org.apache.kafka.clients.consumer.ConsumerRecord<?, ?> consumerRecord, DestinationTopic nextDestination) エラーのあるレコードを再試行トピックに送信する前に、例外をログに記録します。voidリスナー例外をログに記録しないでください。booleanremoveNotRetryableException(ClassSE<? extends ExceptionSE> exceptionType) 構成済みリストから例外型を削除します。protected org.apache.kafka.common.TopicPartitionresolveTopicPartition(org.apache.kafka.clients.consumer.ConsumerRecord<?, ?> cr, DestinationTopic nextDestination) 元のレコードを転送する必要があるTopicPartitionを作成して返します。voidsetDeadLetterPublisherCreator(DeadLetterPublishingRecovererFactory.DeadLetterPublisherCreator creator) DeadLetterPublishingRecovererFactory.DeadLetterPublisherCreatorを指定します。たとえば、パブリッシュされたレコードを変更する場合など、デフォルトの代わりにDeadLetterPublishingRecovererのサブクラスを作成するために使用されます。voidカスタマイザを設定してデフォルトのDeadLetterPublishingRecovererをカスタマイズします。voidsetHeadersFunction(BiFunctionSE<org.apache.kafka.clients.consumer.ConsumerRecord<?, ?>, ExceptionSE, @Nullable org.apache.kafka.common.header.Headers> headersFunction) このファクトリによって追加された標準の再試行ヘッダーに加えて、出力レコードに追加のヘッダーを作成する関数を設定します。voidsetPartitionResolver(BiFunctionSE<org.apache.kafka.clients.consumer.ConsumerRecord<?, ?>, @Nullable StringSE, @Nullable IntegerSE> resolver) パブリッシュ先のパーティション番号のリゾルバーを設定します。voidsetRetainAllRetryHeaderValues(boolean retainAllRetryHeaderValues) RetryTopicHeadersの最後の値のみを保持するには、falseに設定します。デフォルトでは true で、レコードがトピック間を遷移するときにすべての値が保持されます。
コンストラクターの詳細
DeadLetterPublishingRecovererFactory
メソッドの詳細
setHeadersFunction
public void setHeadersFunction(BiFunctionSE<org.apache.kafka.clients.consumer.ConsumerRecord<?, ?>, ExceptionSE, @Nullable org.apache.kafka.common.header.Headers> headersFunction) このファクトリによって追加された標準の再試行ヘッダーに加えて、出力レコードに追加のヘッダーを作成する関数を設定します。- パラメーター:
headersFunction- 関数。- 導入:
- 2.8.4
setPartitionResolver
public void setPartitionResolver(BiFunctionSE<org.apache.kafka.clients.consumer.ConsumerRecord<?, ?>, @Nullable StringSE, @Nullable IntegerSE> resolver) パブリッシュ先のパーティション番号のリゾルバーを設定します。デフォルトでは、コンシューマーレコードと同じパーティションが使用されます。リゾルバーがnullまたは負の数を返した場合、プロデューサーレコードのパーティションは null に設定され、KafkaProducerがパブリッシュ先のパーティションを決定します。- パラメーター:
resolver- リゾルバー。- 導入:
- 2.9.2
setRetainAllRetryHeaderValues
public void setRetainAllRetryHeaderValues(boolean retainAllRetryHeaderValues) RetryTopicHeadersの最後の値のみを保持するには、falseに設定します。デフォルトでは true で、レコードがトピック間を遷移するときにすべての値が保持されます。- パラメーター:
retainAllRetryHeaderValues- 最後の値のみを保存する場合は false。- 導入:
- 2.9.6
setDeadLetterPublisherCreator
public void setDeadLetterPublisherCreator(DeadLetterPublishingRecovererFactory.DeadLetterPublisherCreator creator) DeadLetterPublishingRecovererFactory.DeadLetterPublisherCreatorを指定します。たとえば、パブリッシュされたレコードを変更する場合など、デフォルトの代わりにDeadLetterPublishingRecovererのサブクラスを作成するために使用されます。- パラメーター:
creator- クリエイター- 導入:
- 3.0.9.
setDeadLetterPublishingRecovererCustomizer
public void setDeadLetterPublishingRecovererCustomizer(ConsumerSE<DeadLetterPublishingRecoverer> customizer) カスタマイザを設定してデフォルトのDeadLetterPublishingRecovererをカスタマイズします。- パラメーター:
customizer- カスタマイザー。- 関連事項:
addNotRetryableException
デフォルトリストに例外型を追加します。デフォルトでは、次の例外は再試行されません。 その他はすべて再試行されます。- パラメーター:
exceptionType- 例外型。- 導入:
- 2.8
- 関連事項:
removeNotRetryableException
構成済みリストから例外型を削除します。デフォルトでは、次の例外は再試行されません。 その他はすべて再試行されます。- パラメーター:
exceptionType- 例外型。- 戻り値:
- 削除が成功した場合は true。
- 関連事項:
neverLogListenerException
public void neverLogListenerException()リスナー例外をログに記録しないでください。デフォルトでは、再試行が終了した後にのみログに記録されます。- 導入:
- 2.7.13
alwaysLogListenerException
public void alwaysLogListenerException()試行ごとにリスナー例外をログに記録します。デフォルトでは、再試行が終了した後にのみログに記録されます。- 導入:
- 2.7.13
create
maybeLogListenerException
protected void maybeLogListenerException(ExceptionSE exception, org.apache.kafka.clients.consumer.ConsumerRecord<?, ?> consumerRecord, DestinationTopic nextDestination) エラーのあるレコードを再試行トピックに送信する前に、例外をログに記録します。このメソッドは、下流のアプリケーションによってオーバーライドされ、エラーのログ記録方法をカスタマイズできます。- パラメーター:
exception- エラーの原因となった例外consumerRecord- 元のコンシューマー記録nextDestination- 記録が進む次のトピック- 導入:
- 3.3.0
resolveTopicPartition
protected org.apache.kafka.common.TopicPartition resolveTopicPartition(org.apache.kafka.clients.consumer.ConsumerRecord<?, ?> cr, DestinationTopic nextDestination) Creates and returns theTopicPartition, where the original record should be forwarded. By default, it will use the same partition as the original record's partition, in the next destination topic.DeadLetterPublishingRecoverer#checkPartitionhas logic to check whether that partition exists, and if it doesn't, it sets -1, to allow the Producer itself to assign a partition to the record.サブクラスは、必要に応じて、このメソッドから継承して実装をオーバーライドできます。
setPartitionResolver(BiFunction)を使用して宛先パーティションをカスタマイズすることもできます。- パラメーター:
cr- DLT に転送される元のConsumerRecordnextDestination- consumerRecord が転送される次のDestinationTopic- 戻り値:
- cr が送信されるトピックとパーティションを指定する
TopicPartitionのインスタンス。 - 関連事項: