spring gateway route超时时间原理解析和gateway调用流程

1、HttpClientProperties 设置网关路由超时时间

/** The connect timeout in millis, the default is 45s. */
private Integer connectTimeout;

/** The response timeout. */
private Duration responseTimeout; 

2、GatewayAutoConfiguration配置类当用户没有配置httpclient,gatewayHttpClient方法会用HttpClientProperties 配置httpclient对象,配置httpclient的tcp默认的connectTimeout。

其中还会根据HttpClientProperties 配置 最大的响应头、Proxy、ssl、ConnectionProvider

@Bean
@ConditionalOnMissingBean
public HttpClient gatewayHttpClient(HttpClientProperties properties,
      List customizers) {
 

3、NettyRoutingFilter 负责路由的服务调用,此类中根据路由配置设置远程调用的一些参数。

getHttpClient方法会尝试 从路由信息中获取connect-timeout,如果存在则设置tcp 的connectTimeout参数。

getResponseTimeout方法 会尝试 从路由信息中获取response-timeout参数,如果存在,给http调用设置超时回调

 
  
protected HttpClient getHttpClient(Route route, ServerWebExchange exchange) {
   Object connectTimeo

你可能感兴趣的:(java,spring,gateway)