Spring Cloud Netflix:是否保证会调用 Zuul "Post" 过滤器?

Spring Cloud Netflix: Are Zuul "Post" filters guaranteed to be called?

在利用 Spring MVC 时,我们可以利用拦截器来 "pre" 和 "post" 处理请求。具体来说,我们可以在 prehandle 方法中设置资源(例如线程局部变量),并保证有机会在 afterCompletion/afterConcurrentHandlingStarted 方法中清理这些资源。

考虑 Zuul 过滤器,如果我们在 "Pre" 过滤器中设置资源,我们是否有相同的保证会调用 "Post" 过滤器?有没有更好的方法 initialize/cleanup 使用此编程模型的线程局部变量?

谢谢,

约书亚

从代码来看:https://github.com/Netflix/zuul/ 看起来如果 "pre" 或 "route" 中有异常,"error" 过滤器是 运行,然后"post" 个过滤器。如果在任何类型("pre" 或 "route" 等)期间发生异常,将跳过其余过滤器,因此如果您的 post 过滤器是第一个,我会说将被调用。