日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

过滤器及断言工厂

發(fā)布時(shí)間:2024/4/13 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 过滤器及断言工厂 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

斷言工廠

Spring Cloud Gateway包含許多內(nèi)置的Route Predicate工廠。所有這些斷言都匹配HTTP請求的不同屬性。多路由斷言工廠通過and組合。

官方提供的路由工廠:

這些斷言工廠的配置方式,參照官方文檔:https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.1.0.RELEASE/single/spring-cloud-gateway.html

這里重點(diǎn)掌握請求路徑路由斷言的配置方式:

spring:cloud:gateway:routes:- id: host_routeuri: http://example.orgpredicates:- Path=/foo/{segment},/bar/{segment}

這個(gè)路由匹配以/foo或者/bar開頭的路徑,轉(zhuǎn)發(fā)到http:example.org。例如 /foo/1 or /foo/bar or /bar/baz.

濾器工廠

路由過濾器允許以某種方式修改傳入的HTTP請求或傳出的HTTP響應(yīng)。路徑過濾器的范圍限定為特定路由。Spring Cloud Gateway包含許多內(nèi)置的GatewayFilter工廠。

這些過濾器工廠的配置方式,同樣參照官方文檔:https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.1.0.RELEASE/single/spring-cloud-gateway.html

過濾器 有 20 多個(gè) 實(shí)現(xiàn)類,根據(jù)過濾器工廠的用途來劃分,可以分為以下幾種:Header、Parameter、Path、Body、Status、Session、Redirect、Retry、RateLimiter和Hystrix

這里重點(diǎn)掌握PrefixPath GatewayFilter Factory

上面的配置中,所有的/foo/**開始的路徑都會命中配置的router,并執(zhí)行過濾器的邏輯,在本案例中配置了RewritePath過濾器工廠,此工廠將/foo/(?.*)重寫為{segment},然后轉(zhuǎn)發(fā)到http://example.org。比如在網(wǎng)頁上請求localhost:8090/foo/forezp,此時(shí)會將請求轉(zhuǎn)發(fā)到http://example.org/forezp的頁面

?

? 在開發(fā)中由于所有微服務(wù)的訪問都要經(jīng)過網(wǎng)關(guān),為了區(qū)分不同的微服務(wù),通常會在路徑前加上一個(gè)標(biāo)識,例如:訪問服務(wù)提供方:http://localhost:8090/provider/hello ;訪問服務(wù)消費(fèi)方:http://localhost:8090/consumer/hi 如果不重寫地址,直接轉(zhuǎn)發(fā)的話,轉(zhuǎn)發(fā)后的路徑為:http://localhost:8070/provider/hello和http://localhost:8080/consumer/hi明顯多了一個(gè)provider或者consumer,導(dǎo)致轉(zhuǎn)發(fā)失敗。

這時(shí),我們就用上了路徑重寫,配置如下:

server:port: 8090 spring:cloud:gateway:routes:- id: nacos-consumeruri: http://127.0.0.1:8080predicates:- Path=/consumer/**filters:- RewritePath=/consumer/(?<segment>.*),/$\{segment}- id: nacos-provideruri: http://127.0.0.1:8070predicates:- Path=/provider/**filters:- RewritePath=/provider/(?<segment>.*),/$\{segment}

注意:Path=/consumer/**及Path=/provider/**的變化

測試:

?

總結(jié)

以上是生活随笔為你收集整理的过滤器及断言工厂的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。