zuul 里面的 prefix 和 strip-prefix 怎么使用


首先兩個是配置路由前綴的,

下面是我網上找的一段話:

 

 

基本上看上面這些也明白了,

那我們項目中是怎么用的呢?這里我們有兩種方式:

第一種:

我們有一個內部的微服務系統,本身沒有申請域名,又因為是容器部署(每次啟動ip都會變),

因此不能ip加端口訪問,剛好我們部門有一個項目,所以最后決定就用這個項目做轉發了。

首先我們這個aaa項目配置中:

server.servlet.context-path = /api-aaa


zuul.routes.purchase.path = /bbb/**
zuul.routes.purchase.stripPrefix = false
zuul.routes.purchase.serviceId = bbb項目的服務名

 
 

 

因為配置了項目前綴,因此,請求aaa項目,地址要加 api-aaa

可能有的人沒有看懂,再說明下,這里我是想請求bbb項目,在aaa項目做了一層網關。

 

而且,這里還設置了 stripPrefix = false

也就是說,請求過去的地址,不去除 前綴(bbb/**)

那我最后的請求地址就是:

http://api-aaa/bbb/getList.....

為什么是這個地址呢?

因為是false,不去除前綴,所以要帶bbb,

而且,我們bbb的項目是配置了地址的,

請求的url,必須要有bbb。

server.servlet.context-path = /bbb

所以最后的請求就是那樣了。

 

如果還是沒太明白,我們還有一個場景,

和上面不同的是,這次是true,並且,不是走一個項目,而是專門的網關。

 

網關那邊的配置:

zuul.routes.bbb.path = /order-gateway/bbb-service/**
zuul.routes.bbb.serviceId = com-bbb-service

說明:

網關這邊沒有配置strip-prefix,也就是說是默認值true,那么請求會自動去除這里加的前綴。

也就是會去除/order-gateway/bbb-service/

 

最后的請求地址是,http://網關的域名/order-gateway/bbb-service/bbb/getList....

沒問題的:

因為strip-prefix是true(默認)

去除前綴之后,其實最后請求到bbb系統的地址就是:

之前:http://網關的域名/order-gateway/bbb-service/bbb/getList....

去除之后:http://網關的域名/bbb/getList....

          剛好就轉發到我么bbb項目了。

 

終於搞懂了zuul prefix 和 strip-prefix 區別

Prefix 公共前綴

strip-prefix 不想要前綴,就配置false

想要,就不配,默認就是true

 

strip-prefix 既可以配全局,也可以給每個要轉發的項目配。

 

如果還有不明白的可以留言,這個我也是新學習,咱們可以多多交流下


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM