You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "featzhang (Jira)" <ji...@apache.org> on 2026/03/31 09:32:00 UTC
[jira] [Created] (FLINK-39366) [connector-http] Add retry support with exponential backoff for HTTP Sink
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)