gateway java是什么,讓我們一起了解一下?
gateway旨在為微服務(wù)架構(gòu)提供一種簡單而有效的統(tǒng)一的API路由管理方式,目標(biāo)是替代ZUUL。例如:安全,監(jiān)控/埋點(diǎn),和限流等。
我們?yōu)槭裁匆胓ateway?
1、Spring Cloud Gateway 可以看做是一個(gè) Zuul 1.x 的升級版和代替品,比 Zuul 2 更早的使用 Netty 實(shí)現(xiàn)異步 IO,從而實(shí)現(xiàn)了一個(gè)簡單、比 Zuul 1.x 更高效的、與 Spring Cloud 緊密配合的 API 網(wǎng)關(guān)。
2、Spring Cloud Gateway 里明確的區(qū)分了 Router 和 Filter,并且一個(gè)很大的特點(diǎn)是內(nèi)置了非常多的開箱即用功能,并且都可以通過 SpringBoot 配置或者手工編碼鏈?zhǔn)秸{(diào)用來使用。
3、比如內(nèi)置了 10 種 Router,使得我們可以直接配置一下就可以隨心所欲的根據(jù) Header、或者 Path、或者 Host、或者 Query 來做路由。
比如區(qū)分了一般的 Filter 和全局 Filter,內(nèi)置了 20 種 Filter 和 9 種全局 Filter,也都可以直接用。當(dāng)然自定義 Filter 也非常方便。
那么gateway怎么用?
說白了 Predicate 就是為了實(shí)現(xiàn)一組匹配規(guī)則,方便讓請求過來找到對應(yīng)的 Route 進(jìn)行處理,接下來我們接下 Spring Cloud GateWay 內(nèi)置幾種 Predicate 的使用。
通過時(shí)間匹配:
比如我們現(xiàn)在設(shè)置只有在 2019 年 1 月 1 日轉(zhuǎn)發(fā),我就可以這樣配置:
spring: ??cloud: ????gateway: ??????routes: ???????-?id:?time_route ????????uri:?http://ityouknow.com ????????predicates: ?????????-?After=2018-01-20T06:06:06+08:00[Asia/Shanghai]
當(dāng)然除了通過時(shí)間匹配,我們還可以通過以下方式:
1、通過 Cookie 匹配
2、通過 Host 匹配
3、通過請求方式匹配
4、通過請求路徑匹配
5、通過請求參數(shù)匹配
6、通過請求 ip 地址進(jìn)行匹配
以上就是小編今天的分享了,希望可以幫助到大家。