SpringCloud @EnableZuulProxy過(guò)濾器

2023-11-23 14:01 更新

創(chuàng)建一個(gè)DiscoveryClientRouteLocator,它從DiscoveryClient(例如Eureka)以及屬性中加載路由定義。DiscoveryClient為每個(gè)serviceId創(chuàng)建一條路由。添加新服務(wù)后,將刷新路由。

除了前面描述的過(guò)濾器之外,還安裝了以下過(guò)濾器(常規(guī)Spring Beans):

  • 前置過(guò)濾器:

    • PreDecorationFilter:根據(jù)提供的RouteLocator確定路線和路線。它還為下游請(qǐng)求設(shè)置了各種與代理相關(guān)的標(biāo)頭。
  • 路線過(guò)濾器:

    • RibbonRoutingFilter:使用Ribbon,Hystrix和可插拔的HTTP客戶端發(fā)送請(qǐng)求。RequestContext屬性FilterConstants.SERVICE_ID_KEY中可以找到服務(wù)ID。此過(guò)濾器可以使用不同的HTTP客戶端:

      • Apache HttpClient:默認(rèn)客戶端。
      • Squareup OkHttpClient v3:通過(guò)在類路徑上放置com.squareup.okhttp3:okhttp庫(kù)并設(shè)置ribbon.okhttp.enabled=true來(lái)啟用。
      • Netflix Ribbon HTTP客戶端:通過(guò)設(shè)置ribbon.restclient.enabled=true啟用。該客戶端具有局限性,包括不支持PATCH方法,但是還具有內(nèi)置的重試功能。
    • SimpleHostRoutingFilter:通過(guò)Apache HttpClient將請(qǐng)求發(fā)送到預(yù)定的URL。可在RequestContext.getRouteHost()中找到URL。
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)