運作方式

下圖提供 Spring Cloud Gateway 如何運作的高階概觀

Spring Cloud Gateway Server MVC Diagram

在 Spring Cloud Gateway Server MVC 中,路由是正常的 WebMvc.fn RouterFunction 實例,具有特殊的 HandlerFunction,用於透過 HTTP 轉發請求,定義於 org.springframework.cloud.gateway.server.mvc.handler.HandlerFunctions。 關於 functional API 的常規使用,請參閱 WebMvc.fn 文件。

除了用於 HTTP 轉發的自訂 HandlerFunctions 之外,Spring Cloud Gateway Server MVC 還在 org.springframework.cloud.gateway.server.mvc.predicate.GatewayRequestPredicates 中提供了額外的 RequestPredicate 實作,並在 org.springframework.cloud.gateway.server.mvc.filter.FilterFunctions 中提供了 HandlerFilterFunctions 實作。 所有可以作為純粹「前置」過濾器的自訂過濾器都在 org.springframework.cloud.gateway.server.mvc.filter.BeforeFilterFunctions 中實作,並在 FilterFunctions 中作為請求處理器進行調整。 org.springframework.cloud.gateway.server.mvc.filter.AfterFilterFunctions 中的自訂「後置」過濾器也在 FilterFunctions 中作為回應處理器進行調整。

還有額外的 *FilterFunctions 類別用於可選的過濾器,這些過濾器將與每個過濾器一起記錄。

在路由 URI 上定義的任何路徑都將被忽略。