當前位置:編程學習大全網 - 源碼下載 - httpclient參數配置

httpclient參數配置

這裏簡單解釋壹下flix zuul中則提供了類似的定時器,只不過參數是寫死的

spring-cloud-netflix-core/1.2.6.RELEASE/spring-cloud-netflix-core-1.2.6.RELEASE-sources.jar!/org/springframework/cloud/netflix/zuul/filters/route/SimpleHostRoutingFilter.java

httpcore-4.4.6-sources.jar!/org/apache/http/pool/PoolEntry.java

主要看

httpclient-4.5.3-sources.jar!/org/apache/http/impl/execchain/ConnectionHolder.java

這裏設置了validDuration,會傳給releaseConnection

httpclient-4.5.3-sources.jar!/org/apache/http/impl/conn/PoolingHttpClientConnectionManager.java

這裏去updateExpiry,相當於更新了timeToLive

這裏設置的是http連接池中connection的存活時間

httpclient-4.5.3-sources.jar!/org/apache/http/impl/client/HttpClientBuilder.java

httpclient-4.5.3-sources.jar!/org/apache/http/impl/conn/PoolingHttpClientConnectionManager.java

4.0的ThreadSafeClientConnManager,在4.2版本的時候被廢棄了,默認使用PoolingHttpClientConnectionManager。這個manager有兩個重要的參數,壹個是maxTotal,壹個是defaultMaxPerRoute。

httpclient-4.5.3-sources.jar!/org/apache/http/conn/routing/HttpRoute.java

HttpRoute對象是immutable的,包含的數據有目標主機、本地地址、代理鏈、是否tunnulled、是否layered、是否是安全路由。

httpclient-4.5.3-sources.jar!/org/apache/http/impl/client/IdleConnectionEvictor.java

builder默認會構造壹個IdleConnectionEvictor

httpclient-4.5.3-sources.jar!/org/apache/http/impl/client/HttpClientBuilder.java

如果沒有指定maxIdleTime的話,但是有設置evictExpiredConnections的話,默認是10秒

設置從連接池獲取壹個連接的請求超時時間( 連接池中連接不夠用的時候等待超時時間 ),單位毫秒,可以設置為500ms

httpclient-4.5.3-sources.jar!/org/apache/http/impl/execchain/MainClientExec.java

設置重試策略

httpclient-4.5.3-sources.jar!/org/apache/http/impl/client/DefaultHttpRequestRetryHandler.java

比如不重試,可以這樣設置

當getKeepAliveDuration為-1以及connTimeToLive為-1的時候,closeExpiredConnections方法其實是沒有用的,查看debug日誌會出現

當getKeepAliveDuration不為-1的話,假設是5s,則日誌可能是這樣的

  • 上一篇:“大副”和“二副”是什麽意思
  • 下一篇:yyapp是壹款怎樣的社交軟件?
  • copyright 2024編程學習大全網