springcloud zuul 路由配置

2021-08-26 15:14:23 字數 3216 閱讀 4781

自定義微服務的訪問路徑

配置zuul.routes.指定微服務的serviceid = 指定路徑即可。例如:

zuul: 

routes:

microservice-provider-user: /user/**

這樣設定,microservice-provider-user微服務就會被對映到/user/**路徑。

忽略指定微服務

忽略服務可以使用zuul.ignored-services配置需要忽略的服務,多個用逗號分隔。例如:

zuul: 

ignored-services: microservice-provider

-user, microservice-consumer

-movie

這樣就可讓 zuul 忽略microservice-provider-usermicroservice-consumer-movie微服務,只**其他微服務。

忽略所有微服務,只路由指定微服務

很多場景下可能只想要讓 zuul **指定的微服務,此時可以將zuul.ignored-services設為*

zuul: 

ignored-services: '*' # 使用 '*' 可忽略所有微服務

routes:

microservice-provider-user: /user/**

這樣就可以讓 zuul 只路由microservice-provider-user微服務。

同時指定微服務的 serviceid 和對應路徑。例如:

zuul: 

routes:

user-route: # 該配置方式中,user-route 只是給路由乙個名稱,可以任意起名。

service-id: provider-microservice-user

path: /user/** # service-id 對應的路徑

本例配置的效果和示例1一樣。

同時指定 path 和 url,例如:

zuul:

routes:

user-route:

# 該配置方式中,user-route 只是給路由乙個名稱,可以任意起名。

# 指定的 url

path: /user/** # url 對應的路徑

這樣就可以將/user/**對映到http://localhost:8000/**

需要注意的是,使用這種方式配置的路由不會作為 hystrixcommand 執行,同時也不能使用 ribbon 來負載均衡多個 url。示例6可解決該問題。

同時指定 path 和 url,並且不破壞 zuul 的 hystrix、ribbon 特性。

zuul: 

routes:

user-route:

path: /user/**

service-id: microservice-provider-user

ribbon:

eureka:

enabled: false # 為 ribbon 禁用 eureka

microservice-provider-user:

ribbon:

listofservices: localhost:8000, localhost:8001

這樣就可以既指定 path 與 url,又不破壞 zuul 的 hystrix 與 ribbon 特性了。

@bean

// servicepattern 指定微服務的正則

// routepattern 指定路由正則

return

}

通過這段**即可實現將諸如microservice-provider-user-v1這個微服務,對映到/v1/microservice-provider-user/**這個路徑。

路由字首

示例1:

zuul: 

prefix: /api

strip-prefix: false

routes:

microservice-provider-user: /user/**

這樣,訪問 zuul 的/api/microservice-provider-user/1路徑,請求將會被**到micro-service-provider-user/api/1

示例2:

zuul: 

routes:

microservice-provider-user:

path: /user/**

strip-prefix: false

這樣訪問 zuul 的/user/1路徑,請求將會被**到microservice-provider-user/user/1

忽略某些路徑

上文講解了如何忽略該服務,但有時還需要更細粒度的路由控制。例如,想讓 zuul **某個微服務,同時又想保護該微服務的某些敏感路徑。此時,可使用 ignoredpatterns,指定忽略的正則。例如:

zuul: 

ignoredpatterns: /**/admin/** # 忽略所有包含 /admin/ 的路徑

routes:

microservice-provider-user: /user/**

這樣就可將microservice-provider-user微服務對映到/user/**路徑,但會忽略該微服務中所有包含/admin/的路徑。

Spring Cloud zuul 負載均衡

eureka的pom檔案 org.springframework.cloud spring cloud starter eureka server org.springframework.boot spring boot starter security org.springframework.bo...

Spring Cloud Zuul許可權整合

由於zuul對請求 全程的可控性,我們可以在 requestcontext的基礎上做任何事情,設定乙個執行順序靠前的filter,就可專門 用於對請求特定內容做許可權認證。這種方式的優點是實現靈活度高,可整合已有許可權 系統,對原始系統微服務化特別友好 缺點是需要開發 一套新的邏輯,維護增加成本,而...

springcloud zuul路由閘道器

zuul包含了對請求的路由和過濾兩個最主要的功能 其中路由功能負責將外部請求 到具體的微服務例項上,是實現外部訪問統一入口的基礎而過濾器功能則負責對請求的處理過程進行干預,是實現請求校驗 服務聚合等功能的基礎.zuul和eureka進行整合,將zuul自身註冊為eureka服務治理下的應用,同時從e...