Spring Cloud Netflix Zuul - 默认Filter
/ / 点击 / 阅读耗时 3 分钟Spring Cloud Netflix Zuul
1. FilterConstants
在org.springframework.cloud.netflix.zuul.filters.support.FilterConstants中,可以看到Zuul定义了一些默认Filter的执行顺序。
1 | public final class FilterConstants { |
2. 默认Filter
pre
- ServletDetectionFilter (-3):检测请求是通过DispatcherServlet还是ZuulServlet 运行的.
- Servlet30WrapperFilter(-2):对Servlet3.0环境的包装器过滤
- FormBodyWrapperFilter(-1):为下游服务解析表单数据并重新编码.仅在content-type为application/x-www-form-urlencoded或者multipart/form-data时生效.
- DebugFilter(1):如果设置了“debug”请求参数,则将{@link RequestContext}调试属性设置为true
- PreDecorationFilter(5):根据提供的{@link RouteLocator}确定路由的位置和方式。 *还为下游请求设置各种代理相关的标头
route
- RibbonRoutingFilter(10):使用Ribbon,Hystrix和可插入的http客户端发送请求。
- SimpleHostRoutingFilter(100):通过过apache http clients向预定的url发送请求.
- SendForwardFilter(500):使用requestDispatcher 转发请求.
post
- SendResponseFilter(1000):将代理请求的响应写入当前响应。
error
- SendErrorFilter(0):默认情况下转发到/error路径,如果RequestContext.getThrowable()不是空。