envoy timeout 说明
自下而上:
TCP-> TLS -> HTTP -> STREAM -> ROUTE(业务层)
5层,有各自的超时设置。
1 HTTP conn manager
设置envoy对http连接到超时管理。
闲超时:idle_timeout
默认值 1小时
可以通过comm_http_protocol_options 分别对 downstream 或 upstream 设置不同的值
忙超时:max_connection_duration
默认值是 disable
可以通过comm_http_protocol_options 分别对 downstream 或 upstream 设置不同的值
2 STREAM
stream是http2,http3的概念,讨论http1时,stream即代表一次request
steam_idle_timeout
一次事务,传输过程的闲超时。比如tcp window full,如果在超时时间内没有window更新,则超时。
默认值为5分钟
request_timeout
接收请求的时间,在特定时间内,来着client的请求必须全部接收完,否则超时。
默认值是 disable
request_headers_timeout
接收请求header的时间。同上。
默认值为 disable
max_stream_duration
一个stream的最大传输时间。默认值为disable
同时对upstream和downstream生效
3 ROUTE
timeout
收到完整请求后,upstream响应完成的时间。该时间内upstream未完成响应传输,连接将断开。
默认15秒
idle_timeout
与 stream_idle_timeout 一样,设置了会对其进行覆盖
默认值为disable,设置0会将stream_idle_timeout disable
per_try_timeout
todo
默认值:取route.timeout的值
per_try_idle_timeout
todo
默认值 disable
max_stream_duration
同 idle_timeout, 会覆盖 stream的 max_stream_duration
4 TCP
connection_timeout
TCP连接建链超时,默认5秒。对http同时生效?
tcp_proxy.idle_timeout
无通信时的闲超时,默认一小时。
tcpProtocolOptions.idle_timeout
没有对应downstream连接的TCP链接闲超时时间,默认10分钟
5 TLS
transport_socket_connect_timeout
downstream的tls握手超时,默认值:未知
参考:https://www.envoyproxy.io/docs/envoy/v1.32.10/faq/configuration/timeouts.html
浙公网安备 33010602011771号