[fix][client] add maxRetryRequestTimes in ClientConfigurationData and remove Duplicate retry logic #23989
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
The maxRetries property of AsyncHttpConnector is derived from the config of DefaultAsyncHttpClient.
This causes both DefaultAsyncHttpClient and AsyncHttpConnector to share the same retry count value. However, since both components implement their own retry logic, this configuration actually results in accumulated retries exceeding the configured limit. Given that DefaultAsyncHttpClient has a default retry count of 5, I propose disabling retries in DefaultAsyncHttpClient (setting its retry count to 0) while maintaining the default configuration, to centralize retry handling exclusively within AsyncHttpConnector.
Modifications
Retry Configuration Support
Added
maxRetryRequestTimes
inClientConfigurationData
(default: 5) to control admin client request retry behavior. Configuration propagates toAsyncHttpConnector
implementations.Client API Enhancements
ClientBuilder
interface with newmaxRetryTimes()
methodClientBuilderImpl
AsyncHttpConnector
to use centralized configuration instead of AsyncHttpClient's internal retry settingconfBuilder.setMaxRequestRetry(0)
Added parameter verification test in
ClientBuilderImplTest
to validate retry time configuration constraintDocumentation
doc
doc-required
doc-not-needed
doc-complete
Matching PR in forked repository
PR in forked repository: walkinggo#9