web-dev-qa-db-ja.com

春Kafka消費者の再試行

私はSpringを使用していますKafkaコンシューマは、トピックからメッセージをフェッチしてデータベースに永続化します。障害条件が満たされた場合、たとえば、データベースが利用できない場合、kafkaコンシューマライブラリは再試行するメカニズムを提供しますか?その場合、1回目の再試行は5分後に、2回目は30分後に、3回目は1時間後になど、異なる再試行間隔を設定する方法はありますか?.

9
Punter Vicky

Spring KafkaはRetryingMessageListenerAdapterおよびRetryingAcknowledgingMessageListenerAdapterに同梱されています。@KafkaListenerを使用する場合、AbstractKafkaListenerContainerFactoryRetryTemplate。そして、最後のものには、Spring RetryプロジェクトからのカスタムRetryPolicyおよびBackOffPolicyを注入できます。

https://docs.spring.io/spring-kafka/docs/2.0.0.RELEASE/reference/html/_reference.html#_retrying_deliveries

また、バージョン2.0以降、Apache Kafka 0.11.x.x:のようなものに基づいて、Spring Kafkaでトランザクションがサポートされています。

https://docs.spring.io/spring-kafka/docs/2.0.0.RELEASE/reference/html/_reference.html#transactions

10
Artem Bilan