连接池-OkHttp

rav*_*234 7 java okhttp

我们在 WAS 环境中使用 OkHttp 您能否帮助我们解决以下问题 -:

  • 问题1:对于容器环境来说,理想的连接池大小和保持活动状态应该是多少,有没有任何公式可以计算它,我们将使用Okhttp客户端连接到两个不同的URL

  • 问题2:我们不希望出现任何客户端故障,OkHttp 如何处理过时连接,我在 OkHttp 中没有看到任何参数来检查过时连接?

HTTP Java 客户端 Java 有此参数来打开陈旧连接检查:

http.connection.stalecheck
Run Code Online (Sandbox Code Playgroud)

我们正在使用下面提到的 OkHttp 客户端,我是否缺少任何重要配置?

new OkHttpClient.Builder()
              .readTimeout(10,TimeUnit.SECONDS)
              .retryOnConnectionFailure(false)
              .connectTimeOut(5,TimeUnit.SECONDS)
              .connectionPool(new ConnectionPool(10,5,TimeUnit.SECONDS)
              .build();
Run Code Online (Sandbox Code Playgroud)

Jes*_*son 5

容器环境中理想的连接池大小和保持活动状态应该是多少

以256为起点。它足够大,您将获得良好的命中率,并且足够小,您不会注意到所使用的内存。

如果您经常访问许多不同的主机,您可以对其进行调整。如果您在非常小的容器上运行或对内存敏感,则可以将其调低。

我们不希望出现任何客户端故障

OkHttpClient.Builder 上有一个设置retryOnConnectionFailure。默认情况下这是正确的,并将为您处理客户端故障。如果您确实想处理客户端故障,则可以将其设置为 false。