HttpClient的两种重试机制,tomcat原理图

本文探讨了HttpClient的两种重试机制,包括默认的HttpRequestRetryHandler及其逻辑,并指出如何自定义重试处理。同时,提到了服务不可用时的重试策略和服务端的Tomcat原理,强调了幂等方法在重试中的角色和SocketTimeoutException的处理。
摘要由CSDN通过智能技术生成

}

execChain = new RetryExec(execChain, retryHandlerCopy);

}

automaticRetriesDisabled 是一个 boolean 类型的变量,默认为 false ,所以条件默认是成立的,如果没有设置 HttpRequestRetryHandler 就会用一个默认的。

DefaultHttpRequestRetryHandler 主要有三个成员变量

retryCount

requestSentRetryEnabled

nonRetriableClasses

默认的实例变量设置如下

retryCount=3 ,最多重试3次。

requestSentRetryEnabled=false ,发送成功的就不会重试了

nonRetriableClasses 包含了以下四种:InterruptedIOException UnknownHostException ConnectException SSLException

重试的执行逻辑在 org.apache.http.impl.execchain.RetryExec ,有兴趣的可以去看下。

默认的是否重试逻辑如下

@Override

public boolean retryRequest(final IOException exception, final int executionCount, final HttpContext context) {

Args.notNull(exception, “Exception parameter”);

Args.notNull(context, “HTTP context”)

《一线大厂Java面试题解析+后端开发学习笔记+最新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值