SpringCloud @EnableZuulProxy过滤器

2023-11-23 14:01 更新

创建一个DiscoveryClientRouteLocator,它从DiscoveryClient(例如Eureka)以及属性中加载路由定义。DiscoveryClient为每个serviceId创建一条路由。添加新服务后,将刷新路由。

除了前面描述的过滤器之外,还安装了以下过滤器(常规Spring Beans):

  • 前置过滤器:

    • PreDecorationFilter:根据提供的RouteLocator确定路线和路线。它还为下游请求设置了各种与代理相关的标头。
  • 路线过滤器:

    • RibbonRoutingFilter:使用Ribbon,Hystrix和可插拔的HTTP客户端发送请求。RequestContext属性FilterConstants.SERVICE_ID_KEY中可以找到服务ID。此过滤器可以使用不同的HTTP客户端:

      • Apache HttpClient:默认客户端。
      • Squareup OkHttpClient v3:通过在类路径上放置com.squareup.okhttp3:okhttp库并设置ribbon.okhttp.enabled=true来启用。
      • Netflix Ribbon HTTP客户端:通过设置ribbon.restclient.enabled=true启用。该客户端具有局限性,包括不支持PATCH方法,但是还具有内置的重试功能。
    • SimpleHostRoutingFilter:通过Apache HttpClient将请求发送到预定的URL。可在RequestContext.getRouteHost()中找到URL。
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号