クラス 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) 元のレコードを転送するTopicPartitionを作成して返します。デフォルトでは、次の宛先トピックで元のレコードと同じパーティションが使用されます。DeadLetterPublishingRecoverer#checkPartitionには、そのパーティションが存在するかどうかを確認するロジックがあり、存在しない場合は -1 を設定して、プロデューサー自身がレコードにパーティションを割り当てることができるようにします。サブクラスは、必要に応じて、このメソッドから継承して実装をオーバーライドできます。
setPartitionResolver(BiFunction)を使用して宛先パーティションをカスタマイズすることもできます。- パラメーター:
cr- DLT に転送される元のConsumerRecordnextDestination- consumerRecord が転送される次のDestinationTopic- 戻り値:
- cr が送信されるトピックとパーティションを指定する
TopicPartitionのインスタンス。 - 関連事項: