クラス DeadLetterPublishingRecovererFactory
java.lang.ObjectSE
org.springframework.kafka.retrytopic.DeadLetterPublishingRecovererFactory
DestinationTopicResolver
を使用してメッセージを転送するために使用される DeadLetterPublishingRecoverer
を作成および構成します。- 導入:
- 2.7
- 作成者:
- Tomaz Fernandes, Gary Russell
ネストされたクラスのサマリー
ネストされたクラスコンストラクターのサマリー
コンストラクターメソッドのサマリー
修飾子と型メソッド説明final void
addNotRetryableException
(ClassSE<? extends ExceptionSE> exceptionType) デフォルトリストに例外型を追加します。void
試行ごとにリスナー例外をログに記録します。void
リスナー例外をログに記録しないでください。boolean
removeNotRetryableException
(ClassSE<? extends ExceptionSE> exceptionType) 構成済みリストから例外型を削除します。protected org.apache.kafka.common.TopicPartition
resolveTopicPartition
(org.apache.kafka.clients.consumer.ConsumerRecord<?, ?> cr, DestinationTopic nextDestination) 元のレコードを転送する必要があるTopicPartition
を作成して返します。void
setDeadLetterPublisherCreator
(DeadLetterPublishingRecovererFactory.DeadLetterPublisherCreator creator) DeadLetterPublishingRecovererFactory.DeadLetterPublisherCreator
を指定します。たとえば、パブリッシュされたレコードを変更する場合など、デフォルトの代わりにDeadLetterPublishingRecoverer
のサブクラスを作成するために使用されます。void
カスタマイザを設定してデフォルトのDeadLetterPublishingRecoverer
をカスタマイズします。void
setHeadersFunction
(BiFunctionSE<org.apache.kafka.clients.consumer.ConsumerRecord<?, ?>, ExceptionSE, org.apache.kafka.common.header.Headers> headersFunction) このファクトリによって追加された標準の再試行ヘッダーに加えて、出力レコードに追加のヘッダーを作成する関数を設定します。void
setPartitionResolver
(BiFunctionSE<org.apache.kafka.clients.consumer.ConsumerRecord<?, ?>, StringSE, IntegerSE> resolver) パブリッシュ先のパーティション番号のリゾルバーを設定します。void
setRetainAllRetryHeaderValues
(boolean retainAllRetryHeaderValues) RetryTopicHeaders
の最後の値のみを保持するには、false に設定します。デフォルトでは true で、レコードがトピック間を遷移するときにすべての値が保持されます。
コンストラクターの詳細
DeadLetterPublishingRecovererFactory
メソッドの詳細
setHeadersFunction
public void setHeadersFunction(BiFunctionSE<org.apache.kafka.clients.consumer.ConsumerRecord<?, ?>, ExceptionSE, org.apache.kafka.common.header.Headers> headersFunction) このファクトリによって追加された標準の再試行ヘッダーに加えて、出力レコードに追加のヘッダーを作成する関数を設定します。- パラメーター:
headersFunction
- 関数。- 導入:
- 2.8.4
setPartitionResolver
public void setPartitionResolver(BiFunctionSE<org.apache.kafka.clients.consumer.ConsumerRecord<?, ?>, StringSE, 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
resolveTopicPartition
protected org.apache.kafka.common.TopicPartition resolveTopicPartition(org.apache.kafka.clients.consumer.ConsumerRecord<?, ?> cr, DestinationTopic nextDestination) 元のレコードを転送する必要があるTopicPartition
を作成して返します。デフォルトでは、次の宛先トピックで、元のレコードのパーティションと同じパーティションが使用されます。DeadLetterPublishingRecoverer.checkPartition(org.apache.kafka.common.TopicPartition, org.apache.kafka.clients.consumer.Consumer<?, ?>)
には、そのパーティションが存在するかどうかを確認するロジックがあり、存在しない場合は -1 を設定して、Producer 自体がパーティションをレコードに割り当てることができるようにします。サブクラスは、必要に応じて、このメソッドから継承して実装をオーバーライドできます。
setPartitionResolver(BiFunction)
を使用して宛先パーティションをカスタマイズすることもできます。- パラメーター:
cr
- DLT に転送される元のConsumerRecord
nextDestination
- 次のDestinationTopic
、consumerRecord が転送されます- 戻り値:
- cr が送信されるトピックとパーティションを指定する
TopicPartition
のインスタンス。 - 関連事項: