本文为博主原创,转载请注明出处:
引用 的 spring cloud gateway 的版本为 2.2.5 ;
SpringCloud gateway 在实现服务路由并请求的具体过程是在 org.springframework.cloud.gateway.filter.NettyRoutingFilter 的过滤器中,该过滤器封装了具体的请求参数,以及根据路由规则请求的对应服务,然后根据 HttpClient 进行微服务之间的请求; 该 httpClient 类是 用netty 封装的 客户端,其包路径为 : reactor.netty.http.client.HttpClient ;
查看 NettyRoutingFilter 中的 filter 实现过程:
该方法中 有一个 getHttpClient 方法获取 httpClient 客户端实例的过程,由于在 GatewayAutoConfiguration 中 定义了 springCloud gateway 使用的 httpclient 实例,其声明并自动加载的代码如下:
上面 代码中的 gatewayHttpClient 为 spring cloud gateway 使用的 HttpClient 实例,在spring cloud gateway 进行服务请求时,会自动配置使用该 实例。
如果需要自定义的 HttpClient 实例,如在 httpClient 中自定义 ip 白名单校验,https 请求证书预置,或是添加特殊认证请求头等,这种场景下需要在代码中显示的定义 gatewayHttpClient 实例,代码如下:
这样服务在启动的时候就会优先加载自定的 httpClient 实例。
Original: https://www.cnblogs.com/zjdxr-up/p/16530423.html
Author: 香吧香
Title: SpringCloud gateway自定义请求的 httpClient
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/612337/
转载文章受原作者版权保护。转载请注明原作者出处!