标识网关@EnableZuulProxy和@EnableZuulServer有什么区别
使用@EnableZuulProxy和@EnableZuulServer注解来标识网关
@SpringBootApplication
@EnableEurekaClient // 服务启动后注册到Eureka Server注册中心中
@EnableZuulProxy // 启用zuul
public class ProviderApp {
public static void main(String[] args) {
SpringApplication.run(ProviderApp.class,args);
}
}
@EnableZuulProxy包含了@EnableZuulServer中所有的过滤器,是@EnableZuulServer的超集
可以看到自动配置也是ZuulProxy继承的ZuulServer,所以ZuulProxy实现的内容更多,且ZuulProxy支持Ribbon和DiscoveryClient
public class ZuulProxyAutoConfiguration extends ZuulServerAutoConfiguration
<!-- more -->
@EnableZuulServer过滤器
前置过滤器
- ServletDetectionFilter 监测请求是否通过DispatcherServlet或者ZuulServlet,通过RequestContext中的isDispatcherServletRequest是否为true判断的
- FormBodyWrapperFilter 表单数据解析
- DebugFilter
- Servlet30WrapperFilter
过滤器
- SendResponseFilter 将代理请求的响应写入到当前响应中
路由过滤器
- SendForwardFilter
错误过滤器
SendErrorFilter
如果满足该条件
ctx.getThrowable() != null && !ctx.getBoolean(SEND_ERROR_FILTER_RAN, false)
则将请求转发到配置的对应errorPath路径下
@EnableZuulProxy过滤器
除@EnableZuulServer中的过滤器外还包含了
前置过滤器
- PreDecorationFilter 根据提供的RouteLocator来进行判断如何进行路由
路由过滤器
- RibbonRoutingFilter 使用ribbon
- SimpleHostRoutingFilter
https://zhhll.icu/2023/框架/微服务/springcloud/网关/zuul/3.标识网关/
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。