鍍金池/ 問答/Java  Linux/ springmvc/spring-boot寫的api接口,接收http請求的超時

springmvc/spring-boot寫的api接口,接收http請求的超時是如何設(shè)置的?

我用springmvc和springboot做的項目
用nginx路由對外開放
之前沒關(guān)注過http超時時間
現(xiàn)在想知道
springmvc/spring-boot寫的api接口,接收http請求的超時是如何設(shè)置的?
是nginx,tomcat還是spring框架有默認(rèn)設(shè)置?
還是自己設(shè)置?

或者說超時是客戶端自己設(shè)置,和服務(wù)端無關(guān)?

回答
編輯回答
離夢

WEB-INF/web.xml 控制tomcat服務(wù)的超時時長

   <session-config>
        <session-timeout>30</session-timeout>
    </session-config>
2018年5月31日 09:02
編輯回答
巫婆

參考:

https://docs.spring.io/spring...

WEB PROPERTIES相關(guān)參數(shù)設(shè)置。

是需要通過設(shè)置

server.connection-timeout= # Time that connectors wait for another HTTP request before closing the connection. When not set, the connector's container-specific default is used. Use a value of -1 to indicate no (that is, an infinite) timeout.

來控制請求的發(fā)送的超時時間,還有一些其他參數(shù)你都可以參考下,是否需要調(diào)整。

2018年6月16日 18:20
編輯回答
空痕

每一層都有超時

  1. 客戶端有tcp連接超時
  2. Linux有tcp連接超時
  3. nginx有http的等待請求、空閑連接超時;有反代的建連、發(fā)送請求、等待響應(yīng)等超時
  4. tomcat應(yīng)該也有執(zhí)行超時等等

你可控的是2-4,建議根據(jù)業(yè)務(wù)情況來設(shè)定

  1. 如果某些請求的執(zhí)行非常耗時間,則應(yīng)該在相關(guān)層面加大超時時間
  2. 如果正常請求響應(yīng)很快(數(shù)秒內(nèi)),可以在web路由/負(fù)載均衡層相應(yīng)地縮短超時時間,可以快速切換后端節(jié)點,提高可用性
2018年4月8日 14:06
編輯回答
巴扎嘿

目前主流B/S體系中,基本采用Http1.1方案,Http1.1默認(rèn)是采用持久連接的。持久連接意味著,對于服務(wù)器而言,只要客戶端不關(guān)閉,這個Http連接就會一直保持著(當(dāng)然,服務(wù)器為了防止惡意攻擊,也會采取定時檢測失落的機制主動關(guān)閉連接),而對于客戶端而言,一般會連接超時配置,對于connectionTimeout,socketTimeout,對于HttpClient還會有個connectionRequestTimeout. 你說的超時,一般指的應(yīng)該是客戶端設(shè)置的超時,connectionTimeout是與服務(wù)器在設(shè)定時間內(nèi)沒有成功進(jìn)行tcp的三次握手,而沒有連接上。而socketTimeout是等待服務(wù)器回傳數(shù)據(jù)的時候,指定時間沒有收到。

2018年6月27日 17:51