featzhang created FLINK-39366:
---------------------------------

             Summary: [connector-http] Add retry support with exponential 
backoff for HTTP Sink
                 Key: FLINK-39366
                 URL: https://issues.apache.org/jira/browse/FLINK-39366
             Project: Flink
          Issue Type: New Feature
          Components: Connectors / HTTP
            Reporter: featzhang


h2. Summary

Add retry support for HTTP Sink connector. When HTTP requests fail due to 
network errors (IOException), the sink should automatically retry with 
exponential backoff strategy, improving fault tolerance and reliability in 
unstable network environments.

h2. Motivation

The current HTTP Sink implementation does not retry failed requests. Once a 
network error occurs, the failed requests are counted in error metrics but not 
re-submitted, leading to silent data loss. A configurable retry mechanism with 
exponential backoff is needed to handle transient failures gracefully.

h2.
Proposed Changes

 Add SINKHTTPRETRY_TIMES* constant to HttpConnectorConfigConstants
 Add RETRY_TIMES* ConfigOption to HttpDynamicSinkConnectorOptions (default: 3)
 Register RETRY_TIMES* as an optional option in HttpDynamicTableSinkFactory
* Pass retry configuration via Properties in HttpDynamicSink
* Implement exponential backoff retry logic in HttpSinkWriter:
** Retry only on IOException (network-level errors)
** Exponential backoff with initial delay of 1 second (1s → 2s → 4s → ...)
** Set retry.times=0 to disable retries
* Update unit tests to cover retry behavior
* Update documentation (English and Chinese) with new option description

h2. New Configuration Option

  Option Key    Default    Description  
| sink.http.retry.times | 3 | Number of retry attempts on IOException. Set to 0 
to disable. |

h2. Acceptance Criteria

HttpSinkWriter retries failed requests up to the configured number of times on 
IOException.
Retry interval follows exponential backoff (initial delay 1s, doubles each 
attempt).
Setting retry.times=0 disables retry behavior.
All existing tests pass; new unit tests cover retry scenarios.
Documentation updated in both English and Chinese.

h2. Related

* PR: https://github.com/apache/flink-connector-http/pull/33



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to