Netflix Zuul 比普通的 Servlet 过滤器有什么作用?

What does Netflix Zuul do more than regular Servlet Filters?

我了解 Netflix Zuul 充当可以路由请求的过滤器(尤其是在基于分布式 API 的环境中)。

  1. 与 Struts2 类框架中的常规 Servlet 过滤器或拦截器相比,Zuul 带来了哪些特殊功能?

  2. Zuul 过滤器是由 Servlet 过滤器本身制成的吗?

注意:很少有关于 Zuul 的文章谈到可以在 Zuul 中完成的动态路由、负载卸载、洞察力、健康分析等。我的问题是,我不能在我的传统过滤器或 Struts2 拦截器等中执行相同的操作吗? Zuul 带来了什么不同?

Zuul 过滤器是动态的。在他们简单的 webapp 示例中,过滤器是从脚本目录中轮询的。我还想象这可以重构为从其他地方进行轮询。使用 Struts,您的过滤器将与应用程序一起编译。

Netflix Zuul 是一个 HTTP 反向代理,因此您可以过滤、负载平衡对内部微服务的 HTTP 请求。

在此处阅读更多信息:

http://martinfowler.com/eaaCatalog/gateway.html http://martinfowler.com/articles/microservices.html

  1. 用 Groovy 编写的 Zuul 过滤器可以动态创建并注入 Zuul。
  2. 过滤器接口旨在创建为请求和响应中的管道,这使得设置过滤器优先级、添加、删除或更改通过过滤器链的请求变得非常容易,并做一些有趣的事情一种路由。