SpringCloud @EnableZuulProxy过滤器
2023-11-23 14:01 更新
创建一个DiscoveryClientRouteLocator
,它从DiscoveryClient
(例如Eureka)以及属性中加载路由定义。从DiscoveryClient
为每个serviceId
创建一条路由。添加新服务后,将刷新路由。
除了前面描述的过滤器之外,还安装了以下过滤器(常规Spring Beans):
前置过滤器:
PreDecorationFilter
:根据提供的RouteLocator
确定路线和路线。它还为下游请求设置了各种与代理相关的标头。
路线过滤器:
RibbonRoutingFilter
:使用Ribbon,Hystrix和可插拔的HTTP客户端发送请求。在RequestContext
属性FilterConstants.SERVICE_ID_KEY
中可以找到服务ID。此过滤器可以使用不同的HTTP客户端:- Apache
HttpClient
:默认客户端。 - Squareup
OkHttpClient
v3:通过在类路径上放置com.squareup.okhttp3:okhttp
库并设置ribbon.okhttp.enabled=true
来启用。 - Netflix Ribbon HTTP客户端:通过设置
ribbon.restclient.enabled=true
启用。该客户端具有局限性,包括不支持PATCH方法,但是还具有内置的重试功能。
- Apache
SimpleHostRoutingFilter
:通过Apache HttpClient将请求发送到预定的URL。可在RequestContext.getRouteHost()
中找到URL。
以上内容是否对您有帮助:
更多建议: