gateway - java

來源:趣味經驗館 2.95W

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

gateway java是什麼,讓我們一起了解一下?

gateway旨在為微服務架構提供一種簡單而有效的統一的API路由管理方式,目標是替代ZUUL。例如:安全,監控/埋點,和限流等。

我們為什麼要用gateway?

1、Spring Cloud Gateway 可以看做是一個 Zuul 1.x 的升級版和代替品,比 Zuul 2 更早的使用 Netty 實現非同步 IO,從而實現了一個簡單、比 Zuul 1.x 更高效的、與 Spring Cloud 緊密配合的 API 閘道器。

2、Spring Cloud Gateway 裡明確的區分了 Router 和 Filter,並且一個很大的特點是內建了非常多的開箱即用功能,並且都可以通過 SpringBoot 配置或者手工編碼鏈式呼叫來使用。

3、比如內建了 10 種 Router,使得我們可以直接配置一下就可以隨心所欲的根據 Header、或者 Path、或者 Host、或者 Query 來做路由。

比如區分了一般的 Filter 和全域性 Filter,內建了 20 種 Filter 和 9 種全域性 Filter,也都可以直接用。當然自定義 Filter 也非常方便。

gateway java

那麼gateway怎麼用?

說白了 Predicate 就是為了實現一組匹配規則,方便讓請求過來找到對應的 Route 進行處理,接下來我們接下 Spring Cloud GateWay 內建幾種 Predicate 的使用。

通過時間匹配:

比如我們現在設定只有在 2019 年 1 月 1 日轉發,我就可以這樣配置:

spring:  cloud:    gateway:      routes:       - id: time_route        uri: http://ityouknow.com        predicates:         - After=2018-01-20T06:06:06+08:00[Asia/Shanghai]

當然除了通過時間匹配,我們還可以通過以下方式:

1、通過 Cookie 匹配

2、通過 Host 匹配

3、通過請求方式匹配

4、通過請求路徑匹配

5、通過請求引數匹配

6、通過請求 ip 地址進行匹配



熱門標籤