You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@knox.apache.org by "Attila Magyar (Jira)" <ji...@apache.org> on 2022/04/28 11:13:00 UTC
[jira] [Updated] (KNOX-2736) Knox clients should support retry/failover
[ https://issues.apache.org/jira/browse/KNOX-2736?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Attila Magyar updated KNOX-2736:
--------------------------------
Description:
Not having retries in knox clients can cause service upgrade failures.
The apache http client has a default mechanism (StandardHttpRequestRetryHandler and DefaultServiceUnavailableRetryStrategy) to support retries.
* DefaultServiceUnavailableRetryStrategy only retries in case of a 503 - ServiceUnavailable.
* StandardHttpRequestRetryHandler retries when a non excluded exception occurs during the request.
The excluded exceptions are: InterruptedIOException, UnknownHostException, ConnectException, SSLException. In these cases no retry is going to happen.
The following HTTP methods are considered idempotent so they can be retried: GET, HEAD, PUT, DELETE, OPTIONS, TRACE.
Note that if an endpoint is implemented as a non-idempotent way (for example a PUT) then this might have unwanted side-effects.
Other methods such as POST are only retried if the request has not yet written out to the output stream when the error happened. Or if requestSentRetryEnabled is enabled.
> Knox clients should support retry/failover
> ------------------------------------------
>
> Key: KNOX-2736
> URL: https://issues.apache.org/jira/browse/KNOX-2736
> Project: Apache Knox
> Issue Type: Improvement
> Components: KnoxShell
> Reporter: Attila Magyar
> Assignee: Attila Magyar
> Priority: Major
> Time Spent: 0.5h
> Remaining Estimate: 0h
>
> Not having retries in knox clients can cause service upgrade failures.
> The apache http client has a default mechanism (StandardHttpRequestRetryHandler and DefaultServiceUnavailableRetryStrategy) to support retries.
> * DefaultServiceUnavailableRetryStrategy only retries in case of a 503 - ServiceUnavailable.
> * StandardHttpRequestRetryHandler retries when a non excluded exception occurs during the request.
> The excluded exceptions are: InterruptedIOException, UnknownHostException, ConnectException, SSLException. In these cases no retry is going to happen.
> The following HTTP methods are considered idempotent so they can be retried: GET, HEAD, PUT, DELETE, OPTIONS, TRACE.
> Note that if an endpoint is implemented as a non-idempotent way (for example a PUT) then this might have unwanted side-effects.
> Other methods such as POST are only retried if the request has not yet written out to the output stream when the error happened. Or if requestSentRetryEnabled is enabled.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)