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

 

posted on 2025-08-29 18:30  toong  阅读(26)  评论(0)    收藏  举报