国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

http各種超時(shí)配置

這篇具有很好參考價(jià)值的文章主要介紹了http各種超時(shí)配置。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

  1. httpclient–請(qǐng)求方瀏覽器
    connectTimeOut:建立連接時(shí)間 三次握手 org.apache.http.conn.HttpHostConnectException: Connect to 1.2.3.4:80 [/1.2.3.4] failed: Connection timed out: connect
    socketTimeOut:鏈接建立成功后,數(shù)據(jù)包傳輸之間時(shí)間超時(shí)限制,數(shù)據(jù)包,非此次接口調(diào)用時(shí)間,一定要設(shè)置 否則長(zhǎng)時(shí)間等待
    java.net.SocketTimeoutException: Read timed out
    connectionRequestTimeOut:從連接池獲取連接的超時(shí)限制,不常用
  2. nginx–響應(yīng)方服務(wù)器
    client_header_timeout:讀取客戶端請(qǐng)求頭超時(shí)時(shí)間,默認(rèn)為60s,如果在此超時(shí)時(shí)間內(nèi)客戶端沒有發(fā)送完請(qǐng)求頭,則響應(yīng)408(RequestTime-out)
    client_body_timeout:同上
    send_timeout
    keepalive_timeout timeout [header_timeout]:關(guān)聯(lián)httpclient連接池 重要:設(shè)置HTTP長(zhǎng)連接超時(shí)時(shí)間,其中,第一個(gè)參數(shù)timeout是告訴Nginx長(zhǎng)連接超時(shí)時(shí)間是多少,默認(rèn)為75s。第二個(gè)參數(shù)header_timeout是用于設(shè)置響應(yīng)頭“Keep-Alive: timeout=time”,即告知客戶端長(zhǎng)連接超時(shí)時(shí)間。兩個(gè)參數(shù)可以不一樣,“Keep-Alive:timeout=time”響應(yīng)頭可以在Mozilla和Konqueror系列瀏覽器起作用,而MSIE長(zhǎng)連接默認(rèn)大約為60s,而不會(huì)使用“Keep-Alive: timeout=time”。如Httpclient框架會(huì)使用“Keep-Alive: timeout=time”響應(yīng)頭的超時(shí)(如果不設(shè)置默認(rèn),則認(rèn)為是永久)。如果timeout設(shè)置為0,則表示禁用長(zhǎng)連接。
    還有各種轉(zhuǎn)發(fā)超時(shí)
  3. Spring Cloud各個(gè)框架超時(shí)配置
    feign :default或feignName或contextId:feign 作為最前端暴露給用戶使用的,一般其超時(shí)設(shè)置相當(dāng)于對(duì)用戶的一個(gè)承諾,所以Spring在處理這一塊的時(shí)候,會(huì)有意識(shí)地使用feign的超時(shí)時(shí)間來設(shè)置后面的ribbon 和http client組件。需要注意的是:hystrix的超時(shí)處理和feign之間在當(dāng)前的Spring Cloud框架規(guī)劃中,并沒有相關(guān)關(guān)系。
    feign.client.config.default.connectTimeout:網(wǎng)絡(luò)連接
    feign.client.config.default.readTimeout:數(shù)據(jù)讀取
    hystrix :Hystrix的超時(shí)設(shè)置,在于命令執(zhí)行的時(shí)間,一般而言,這個(gè)時(shí)間要稍微比Feign的超時(shí)時(shí)間稍微長(zhǎng)些,因?yàn)镃ommand除了請(qǐng)求調(diào)用之外,還有一些業(yè)務(wù)代碼消耗。Hystrix的超時(shí)時(shí)間是站在命令執(zhí)行時(shí)間來看的,和Feign設(shè)置的超時(shí)時(shí)間在設(shè)置上并沒有關(guān)聯(lián)關(guān)系。Hystrix不僅僅可以封裝Http調(diào)用,還可以封裝任意的代碼執(zhí)行片段。Hystrix是從命令對(duì)象的角度去定義,某個(gè)命令執(zhí)行的超時(shí)時(shí)間,超過此此時(shí)間,命令將會(huì)直接熔斷。假設(shè)hystrix 的默認(rèn)超時(shí)時(shí)間設(shè)置了10000,即10秒,而feign 設(shè)置的是20秒,那么Hystrix會(huì)在10秒到來是直接熔斷返回,不會(huì)等到feign的20秒執(zhí)行結(jié)束,也不會(huì)中斷尚未執(zhí)行完的feign調(diào)用。
    hystrix.command.default.execution.isolation.strategy = THREAD
    hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds = 10000
    hystrix.command.default.execution.timeout.enabled = true
    hystrix.command.default.execution.isolation.thread.interruptOnTimeout = true
    hystrix.command.default.execution.isolation.thread.interruptOnFutureCancel = false
    ribbon :當(dāng)feign設(shè)置了超時(shí)時(shí)間,Ribbon會(huì)依據(jù)feign的設(shè)置同步。Ribbon的這個(gè)超時(shí)時(shí)間,用于指導(dǎo)真正調(diào)用接口時(shí),設(shè)置真正實(shí)現(xiàn)者的超時(shí)時(shí)間。Ribbon和Feign是相對(duì)獨(dú)立的組件,在一個(gè)Spring Cloud框架運(yùn)行環(huán)境中,可以沒有Feign。那么,在這種場(chǎng)景下,假設(shè)Http Client客戶端使用的是OKHttp,并且通過ribbon.okhttp.enabled 指定ribbon調(diào)用時(shí),會(huì)使用ribbon的超時(shí)配置來初始化OkHttp.為了保證整個(gè)組件調(diào)用鏈的超時(shí)關(guān)系,一般Spring Cloud采取的策略是:依賴方的超時(shí)配置覆蓋被依賴方的配置。當(dāng)然這個(gè)也不是絕對(duì)的,實(shí)際上對(duì)于Feign而言,可以直接指定Feign和HttpClient之間的配置關(guān)系
    feign.httpclient.maxConnections = 200http //client最大連接數(shù),默認(rèn)200
    feign.httpclient.maxConnectionsPerRoute= 50 //每個(gè)IP路由最大連接數(shù)量
    feign.httpclient.timeToLive = 900 //連接存活時(shí)間
    feign.httpclient.timeToLiveUnit = SECONDS //連接存活時(shí)間單位
    feign.httpclient.connectionTimeout = 2000 //連接超時(shí)時(shí)間
    fein.httpclient.connectionTimeout=3000 //連接超時(shí)定時(shí)器的執(zhí)行頻率
    Hystrix的超時(shí)時(shí)間和Feign或者Http Client的超時(shí)時(shí)間關(guān)系
    Hystrix的超時(shí)意義是從代碼執(zhí)行時(shí)間層面控制超時(shí);而Feign或Http Client 則是通過Http底層TCP/IP的偏網(wǎng)絡(luò)層層面控制的超時(shí)。
    建議是:一般情況下,Hystrix 的超時(shí)時(shí)間要大于Feign或Http Client的超時(shí)時(shí)間;而對(duì)于特殊需求的接口調(diào)用上,為了避免等待時(shí)間太長(zhǎng),需要將對(duì)應(yīng)的Hystrix command 超時(shí)時(shí)間配置的偏小一點(diǎn),滿足業(yè)務(wù)側(cè)的要求。
    zuul
    zuul.host.socket-timeout-millis=2000 #默認(rèn)1000
    zuul.host.connect-timeout-millis=4000 #默認(rèn)2000

others
#斷路器詳細(xì)設(shè)置
#當(dāng)在配置時(shí)間窗口內(nèi)達(dá)到此數(shù)量的失敗后,進(jìn)行短路。默認(rèn)20個(gè))
#hystrix.command.default.circuitBreaker.requestVolumeThreshold=20
#短路多久以后開始嘗試是否恢復(fù),默認(rèn)5s)
#hystrix.command.default.circuitBreaker.sleepWindowInMilliseconds=5
#出錯(cuò)百分比閾值,當(dāng)達(dá)到此閾值后,開始短路。默認(rèn)50%)
#hystrix.command.default.circuitBreaker.errorThresholdPercentage=50%
#重試機(jī)制
#該參數(shù)用來開啟重試機(jī)制,默認(rèn)是關(guān)閉
spring.cloud.loadbalancer.retry.enabled=true
#對(duì)所有操作請(qǐng)求都進(jìn)行重試
ribbon.OkToRetryOnAllOperations=true
#對(duì)當(dāng)前實(shí)例的重試次數(shù)
ribbon.MaxAutoRetries=1
#切換實(shí)例的重試次數(shù)
ribbon.MaxAutoRetriesNextServer=1
#根據(jù)如上配置,當(dāng)訪問到故障請(qǐng)求的時(shí)候,它會(huì)再嘗試訪問一次當(dāng)前實(shí)例(次數(shù)由MaxAutoRetries配置),如果不行,就換一個(gè)實(shí)例進(jìn)行訪問,如果還是不行,再換一次實(shí)例訪問(更換次數(shù)由MaxAutoRetriesNextServer配置),
zuul請(qǐng)求也是通過Ribbon負(fù)載均衡客戶端去調(diào)用其他服務(wù)的,ribbon客戶端默認(rèn)是用HttpClient來發(fā)起http請(qǐng)求調(diào)用,ribbon內(nèi)部又會(huì)構(gòu)造hystrix command來執(zhí)行請(qǐng)求(所以我們常說ribbon的超時(shí)時(shí)間設(shè)置要大于等于hystrix 超時(shí)時(shí)間,不然導(dǎo)致command還沒執(zhí)行完,ribbon卻超時(shí)了)

feign調(diào)用原理
http請(qǐng)求設(shè)置超時(shí)時(shí)間,http,java,nginx

http請(qǐng)求設(shè)置超時(shí)時(shí)間,http,java,nginx

Ribbon有哪些負(fù)載均衡策略:
輪詢策略
權(quán)重策略
隨機(jī)策略
最小連接數(shù)策略
重試策略
可用性敏感策略
區(qū)域敏感策略

Feign和Ribbon的重試機(jī)制相當(dāng)于一個(gè)雙層循環(huán),feign重試機(jī)制在外層,Ribbon的重試機(jī)制在里層,每執(zhí)行一次feign的重試機(jī)制,內(nèi)層的Ribbon的重試機(jī)制都會(huì)全部執(zhí)行一次。Feign和OpenFeign的底層就是Ribbon,所以當(dāng)項(xiàng)目使用了Feign或OpenFeign的重試機(jī)制,就不要開啟Ribbon的重試機(jī)制,反之亦然。否則重試配置重疊,實(shí)際重試次數(shù)是二者的笛卡爾積。

ribbon的重試機(jī)制是使用RequestSpecificRetryHandler和LoadBalancerCommand來處理的,我們可以在配置文件定義參數(shù),Spring框架會(huì)自動(dòng)幫我們加載到RequestSpecificRetryHandler和LoadBalancerCommand的屬性中去

feign的重試機(jī)制的實(shí)現(xiàn)類是Retryer,他的核心參數(shù)含義如下:
maxAttempts-最大嘗試次數(shù),默認(rèn)值為5,首次請(qǐng)求也算一次,請(qǐng)求1次,重試4次。
period;-初始時(shí)間,用于參與計(jì)算線程休眠時(shí)間。
maxPeriod;-線程休眠的單次最大時(shí)間上限。
attempt;-嘗試次數(shù),每次嘗試+1。
sleptForMillis;-線程累計(jì)休眠總時(shí)間。

Spring Cloud組件那么多超時(shí)設(shè)置,我們?nèi)绾卫斫夂瓦\(yùn)用?文章來源地址http://www.zghlxwxcb.cn/news/detail-782107.html

到了這里,關(guān)于http各種超時(shí)配置的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • http各種超時(shí)配置

    http各種超時(shí)配置

    httpclient– 請(qǐng)求方瀏覽器 connectTimeOut :建立連接時(shí)間 三次握手 org.apache.http.conn.HttpHostConnectException: Connect to 1.2.3.4:80 [/1.2.3.4] failed: Connection timed out: connect socketTimeOut :鏈接建立成功后,數(shù)據(jù)包傳輸之間時(shí)間超時(shí)限制,數(shù)據(jù)包,非此次接口調(diào)用時(shí)間,一定要設(shè)置 否則長(zhǎng)時(shí)間等待

    2024年02月02日
    瀏覽(16)
  • Axios設(shè)置請(qǐng)求超時(shí)時(shí)間 timeout

    1.axios全局設(shè)置網(wǎng)絡(luò)超時(shí) 2.?單獨(dú)對(duì)某個(gè)請(qǐng)求設(shè)置網(wǎng)絡(luò)超時(shí) 3.webpack的dev的proxyTable的超時(shí)時(shí)間設(shè)置

    2024年04月10日
    瀏覽(19)
  • golang 通過context設(shè)置接口請(qǐng)求超時(shí)時(shí)間

    下面是直接可應(yīng)用的實(shí)例:

    2024年02月10日
    瀏覽(15)
  • 解鎖新技能RestTemplate設(shè)置全局、單個(gè)請(qǐng)求超時(shí)時(shí)間及支持https請(qǐng)求

    springboot請(qǐng)求第三方接口時(shí)會(huì)用到RestTemplate,其底層實(shí)現(xiàn)邏輯默認(rèn)是通過SimpleClientHttpRequestFactory來實(shí)現(xiàn),具體由socket連接來實(shí)現(xiàn);可以替換其默認(rèn)實(shí)現(xiàn)為HttpComponentsClientHttpRequestFactory。 一、自定義RestTemplate實(shí)例對(duì)象 二、RestTemplate自定義全局超時(shí)時(shí)間 三、RestTemplate設(shè)置單個(gè)請(qǐng)求

    2023年04月09日
    瀏覽(17)
  • Springboot調(diào)整接口響應(yīng)返回時(shí)長(zhǎng)詳解(解決響應(yīng)超時(shí)問題)_springboot設(shè)置請(qǐng)求超時(shí)時(shí)間

    1、配置Http會(huì)話超時(shí) 可以通過兩種方式為Spring Boot應(yīng)用程序 配置HTTP會(huì)話超時(shí) 。 1.1 application.properties中配置會(huì)話超時(shí) 最簡(jiǎn)單的方法是在你的application.properties中加入?yún)?shù) server.servlet.session.timeout 。 還要注意的是, Tomcat不允許你將超時(shí)時(shí)間設(shè)置得少于60秒 。 1.2 以程序方式配置會(huì)

    2024年04月27日
    瀏覽(114)
  • axios 統(tǒng)一配置請(qǐng)求超時(shí)時(shí)間

    你可以通過配置 axios 的實(shí)例來統(tǒng)一設(shè)置請(qǐng)求的超時(shí)時(shí)間。以下是一個(gè)示例: 首先,安裝 axios(如果還沒有安裝): 然后,在你的 Vue 項(xiàng)目中,你可以創(chuàng)建一個(gè) axios 的實(shí)例,并設(shè)置默認(rèn)的超時(shí)時(shí)間,然后將它應(yīng)用到所有的請(qǐng)求。例如,你可以在項(xiàng)目的某個(gè)地方(例如 main.js )

    2024年02月03日
    瀏覽(21)
  • Feign、Ribbon、Hystrix(鐵三角)以及三者超時(shí)時(shí)間配置
Feign 如何設(shè)置超時(shí)時(shí)間(connectionTimeout、readTimout

    Feign、Ribbon、Hystrix(鐵三角)以及三者超時(shí)時(shí)間配置 Feign 如何設(shè)置超時(shí)時(shí)間(connectionTimeout、readTimout

    在微服務(wù)架構(gòu)中很多功能都需要調(diào)用多個(gè)服務(wù)才能完成某一項(xiàng)功能,一個(gè)成熟的微服務(wù)集群,內(nèi)部調(diào)用必然依賴一個(gè)好的 RPC 框架,比如:基于 Http 協(xié)議的? Feign ,基于私有 tcp 協(xié)議的? Dubbo ? 1. Feign 是什么 Feign 是Spring Cloud Netflix組件中的輕量級(jí)Restful的 HTTP 服務(wù)客戶端,實(shí)現(xiàn)

    2024年02月11日
    瀏覽(20)
  • springboot配置http連接超時(shí)時(shí)間主動(dòng)斷開避免產(chǎn)生大量close_wait

    與客戶端聯(lián)調(diào)接口,通信方式使用http連接,客戶端設(shè)置了發(fā)起請(qǐng)求后10s就斷開連接,然后果不其然,我在服務(wù)端這邊收到了大量的close_wait狀態(tài),最終導(dǎo)致接口不可用。 close_wait產(chǎn)生的原因就是客戶端斷開了連接但是沒有發(fā)FIN給到服務(wù)端,所以服務(wù)端不知道還一直在跟客戶端通

    2024年02月16日
    瀏覽(23)
  • nginx配置http請(qǐng)求轉(zhuǎn)成https請(qǐng)求

    1、return 301 2、rewitre 3、error_page 原理: http和https是tcp的上層協(xié)議,當(dāng)nginx服務(wù)器建立tcp連接后,根據(jù)收到的第一份數(shù)據(jù)來確定客戶端是希望建立tls還是http。nginx會(huì)判斷tcp請(qǐng)求的首寫節(jié)內(nèi)容以進(jìn)行區(qū)分,如果是0x80或者0x16就可能是ssl或者tls,然后嘗試https握手。如果端口開啟了

    2024年02月07日
    瀏覽(21)
  • 【nginx】配置將HTTPS請(qǐng)求轉(zhuǎn)換成HTTP

    要將HTTPS請(qǐng)求轉(zhuǎn)換為HTTP請(qǐng)求,可以在Nginx的配置文件中添加以下配置: 打開Nginx的配置文件,通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/default.conf 。 在 server 塊中添加以下配置,將HTTPS請(qǐng)求轉(zhuǎn)發(fā)到后端的HTTP服務(wù): 將 yourdomain.com 替換為你的域名, /path/to/your/ssl_certificate.crt 和

    2024年02月10日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包