開心生活站

位置:首頁 > IT科技 > 

gateway,java

<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 地址進行匹配



標籤:gateway java