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怎么用?
說白了 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 地址進行匹配
以上就是小編今天的分享了,希望可以幫助到大家。