鋒哥原創(chuàng)的微服務(wù)網(wǎng)關(guān)Gateway視頻教程:
Gateway微服務(wù)網(wǎng)關(guān)視頻教程(無廢話版)_嗶哩嗶哩_bilibiliGateway微服務(wù)網(wǎng)關(guān)視頻教程(無廢話版)共計(jì)17條視頻,包括:1_Gateway簡介、2_Gateway工作原理、3_Gateway HelloWorld快速入門等,UP主更多精彩視頻,請關(guān)注UP賬號。https://www.bilibili.com/video/BV1oX4y1u7ZJ/
4.1 路由斷言工廠
Spring Cloud Gateway將路由作為Spring WebFluxHandlerMapping
基礎(chǔ)架構(gòu)的一部分進(jìn)行匹配。Spring Cloud Gateway包括許多內(nèi)置的路由斷言工廠。所有這些斷言都與HTTP請求的不同屬性匹配。您可以將多個路由斷言工廠與邏輯and
語句結(jié)合使用。
路由斷言工廠RoutePredicateFactory包含的主要實(shí)現(xiàn)類如圖所示,包含Datetime、Cookie、Header、Host、Method、Path、Query、RemoteAddr、Weight等類型的路由斷言。
4.2 日期時間路由匹配規(guī)則
匹配指定日期時間之后的請求 After
spring:
application:
name: gateway-server
cloud:
gateway:
routes:
- id: after_route
uri: http://localhost:8080/
predicates:
- After=2021-04-20T06:06:06+08:00[Asia/Shanghai]
匹配指定日期時間之前的請求 Before
spring:
application:
name: gateway-server
cloud:
gateway:
routes:
- id: before_route
uri: http://localhost:8080/
predicates:
- Before=2021-04-20T06:06:06+08:00[Asia/Shanghai]
匹配指定日期時間之間的請求 Between
spring:
application:
name: gateway-server
cloud:
gateway:
routes:
- id: betwwen_route
uri: http://localhost:8080/
predicates:
- Between=2021-01-20T06:06:06+08:00[Asia/Shanghai],2021-04-20T06:06:06+08:00[Asia/Shanghai]
4.3 Cookie路由匹配規(guī)則
所述Cookie路由斷言工廠采用兩個參數(shù),該cookiename和regexp(其是Java正則表達(dá)式)。該斷言匹配具有給定名稱且其值與正則表達(dá)式匹配的cookie。以下示例配置cookie路由斷言工廠:
spring:
application:
name: gateway-server
cloud:
gateway:
routes:
- id: cookie_route
uri: http://localhost:8080/
predicates:
- Cookie=token, \d+
4.4 Header路由匹配規(guī)則
所述Header
;路由斷言工廠采用兩個參數(shù),報(bào)頭name
和一個regexp
(其是Java正則表達(dá)式)。該斷言與具有給定名稱的頭信息匹配,該標(biāo)頭的值與正則表達(dá)式匹配。以下示例配置Header路由斷言:
spring:
application:
name: gateway-server
cloud:
gateway:
routes:
- id: header_route
uri: http://localhost:8080/
predicates:
- Header=X-Request-Id, \d+
4.5 Host路由匹配規(guī)則
該`Host`路由斷言工廠需要一個參數(shù):主機(jī)名的列表`patterns`。該模式是帶有.分隔符的Ant樣式的模式。斷言與`Host`匹配模式的標(biāo)頭匹配。以下示例配置主機(jī)路由斷言:
spring:
application:
name: gateway-server
cloud:
gateway:
routes:
- id: host_route
uri: http://localhost:8080/
predicates:
- Host=**.somehost.org,**.anotherhost.org
4.6 Method路由匹配規(guī)則
所述Method
路由斷言廠需要methods
的參數(shù),它是一個或多個參數(shù):HTTP方法來匹配。以下示例配置方法路由斷言:
spring:
application:
name: gateway-server
cloud:
gateway:
routes:
- id: method_route
uri: http://localhost:8080/
predicates:
- Method=GET,POST
4.7 Path路由匹配規(guī)則
該Path
路由斷言廠有兩個參數(shù):春天的列表PathMatcher
patterns
和一個可選的標(biāo)志叫matchOptionalTrailingSeparator
。以下示例配置路徑路由斷言:
spring:
application:
name: gateway-server
cloud:
gateway:
routes:
- id: path_route
uri: http://localhost:8080/
predicates:
- Path=/product/{segment}
4.8 Query路由匹配規(guī)則
所述Query
路由斷言工廠采用兩個參數(shù):所要求的param
和可選的regexp
(其是Java正則表達(dá)式)。以下示例配置查詢路由斷言:
spring:
application:
name: gateway-server
cloud:
gateway:
routes:
- id: query_route
uri: http://localhost:8080/
predicates:
- Query=green
如果請求包含green
查詢參數(shù),則前面的路由匹配。
4.9 RemoteAddr路由匹配規(guī)則
所述RemoteAddr
路由斷言工廠需要的列表(分鐘尺寸1) sources
,其是CIDR的表示法(IPv4或IPv6)的字符串,如192.168.0.1/16
(其中192.168.0.1
是一個IP地址和16
一個子網(wǎng)掩碼)。下面的示例配置RemoteAddr路由斷言:
spring:
cloud:
gateway:
routes:
- id: remoteaddr_route
uri: https://example.org
predicates:
- RemoteAddr=192.168.1.1/24
如果請求的遠(yuǎn)程地址為上面配置,則此路由匹配192.168.1.10。
4.10 Weight路由匹配規(guī)則
該Weight
路由斷言工廠有兩個參數(shù):group
和weight
(一個int)。權(quán)重是按組計(jì)算的。以下示例配置權(quán)重路由斷言:文章來源:http://www.zghlxwxcb.cn/news/detail-841022.html
spring:
cloud:
gateway:
routes:
- id: weight_high
uri: https://weighthigh.org
predicates:
- Weight=group1, 8
- id: weight_low
uri: https://weightlow.org
predicates:
- Weight=group1, 2
這條路線會將大約80%的流量轉(zhuǎn)發(fā)到weighthigh.org,將大約20%的流量轉(zhuǎn)發(fā)到weightlow.org。文章來源地址http://www.zghlxwxcb.cn/news/detail-841022.html
到了這里,關(guān)于兩天學(xué)會微服務(wù)網(wǎng)關(guān)Gateway-Gateway路由規(guī)則的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!