【发布时间】:2020-11-12 18:47:06
【问题描述】:
我们在 WAS 环境中使用 OkHttp,请您帮助我们解决以下问题 -:
问题 1-: 理想的连接池大小应该是多少,并在容器环境中保持活动状态,是否有计算公式,我们将使用 Okhttp 客户端连接到两个不同的 URL
问题 2-: - 我们不希望出现任何客户端故障,OkHttp 如何处理陈旧连接,我在 OkHttp 中没有看到任何参数来检查陈旧连接?
http java client java有这个参数可以开启stale connection check
http.connection.stalecheck
我们正在使用下面提到的 OkHttp 客户端,我是否缺少任何重要配置?
new OkHttpClient.Builder()
.readTimeout(10,TimeUnit.SECONDS)
.retryOnConnectionFailure(false)
.connectTimeOut(5,TimeUnit.SECONDS)
.connectionPool(new ConnectionPool(10,5,TimeUnit.SECONDS)
.build();
【问题讨论】:
-
这里定义的ConnectionPool是只配置maxIdleConnections。在您的情况下,您配置了 10 个 maxIdleconnections 和 5secs keepalive,这非常少。没有公式可以告诉您需要根据用例进行试验的正确数量如果您想为连接池配置 maxConnections,请使用 OkHttpClient.Builder.dispatcher(new Executors.newFixedThreadPool(
)) -
我们正在使用执行(同步),因为如果我们使用异步,OkHttp 文档调度程序将工作