Zuul大部分功能都是通过过滤器来实现的,Zuul中定义了四种过滤器类型,这些过滤器类型对应的生命周期:
PRE:这种过滤器在请求被路由调用之前调用。我们可利用这种过滤器实现身份验证、再集群中选择请求的微服务、记录调试信息等。
ROUTING:这种过滤器将请求路由到微服务。用于构建发送给微服务的请求,并使用Apache HttpClient或Netflix Ribbon构建和发送原始HTTP请求的位置。
POST:请求在路由到微服务之后执行。示例包括向响应添加标准HTTP标头、收集统计信息和指标、以及将响应从源传输到客户端。
ERROR:过滤器在其中一个阶段发生错误时执行。
image新建拦截器,继承ZuulFilter并重写默认方法
public class TestFilter extends ZuulFilter {
/**
* 过滤器类型:pre、routing、post、error
*
* @return
*/
@Override
public String filterType() {
return "pre";
}
/**
* 通过int值来定义过滤器的执行顺序,数值越小优先级越高。
*
* @return
*/
@Override
public int filterOrder() {
return 0;
}
/**
* 通过boolean值判断该过滤器是否要执行,可以在此方法写入过滤逻辑,限定过滤器有效范围
*
* @return
*/
@Override
public boolean shouldFilter() {
return false;
}
/**
* 自定义过滤器逻辑
*
* @return
*/
@Override
public Object run() {
return null;
}
}
网友评论