Brad Atcheson created FLINK-34023:
-------------------------------------
Summary: Expose Kinesis client retry config in sink
Key: FLINK-34023
URL: https://issues.apache.org/jira/browse/FLINK-34023
Project: Flink
Issue Type: Improvement
Components: Connectors / Kinesis
Reporter: Brad Atcheson
The consumer side exposes client retry configuration like
[flink.shard.getrecords.maxretries|https://nightlies.apache.org/flink/flink-docs-stable/api/java/org/apache/flink/streaming/connectors/kinesis/config/ConsumerConfigConstants.html#SHARD_GETRECORDS_RETRIES]
but the producer side lacks similar config for PutRecords.
The KinesisStreamsSinkWriter constructor calls
{code}
this.httpClient = AWSGeneralUtil.createAsyncHttpClient(kinesisClientProperties);
this.kinesisClient = buildClient(kinesisClientProperties, this.httpClient);
{code}
But those methods only refer to these values (aside from endpoint/region/creds)
in the kinesisClientProperties:
* aws.http-client.max-concurrency
* aws.http-client.read-timeout
* aws.trust.all.certificates
* aws.http.protocol.version
Without control over retry, users can observe exceptions like {code}Request
attempt 2 failure: Unable to execute HTTP request: connection timed out after
2000 ms: kinesis.us-west-2.amazonaws.com{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)