SpringCloud 路由ZUUL的配置詳解

2022-03-13 21:07:52 字數 3878 閱讀 1462

以下是兩種配置檔案的配置方式,可以根據需要選取對自己專案有利的配置。

zuul:

routes:

provider-user: /user/**

zuul.routes.provider-user.path=/user/**

這樣設定,provider-user微服務的訪問路徑就會被對映到/user/**路徑,例如正常訪問provider-user模組:localhost:8002/getuser 配置後需要訪問zuul服務(假設我的zuul服務埠為8004,實際看自己的zuul服務埠):localhost:8004/user/getuser

#多個微服務名稱用,分隔開

zuul:

ignored-services: provider-user,consumer-movie

zuul.ignored-services=provider-user,consumer-movie

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

# 使用'*'可忽略所有微服務

zuul:

ignored-services: '*'

routes:

provider-user: /user/**

zuul.ignored-services=*

zuul.routes.provider-user=/user/**

讓zuul路由可以訪問provider-user微服務。

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

zuul:

routes:

provider-user:

service-id: provider-user

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

zuul.routes.provider-user.serviceid=provider-user

zuul.routes.provider-user.path=/user/**

與自定義訪問路徑一樣效用,微服務就會被對映到/user/**路徑。

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

zuul:

routes:

provider-user:

url: http://localhost:8002/ # 指定的url

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

/user/**對映到http://localhost:8000/**路徑

使用這種方式配置的路由不會作為hystrixcommand執行,同時也不能使用ribbon來負載均衡多個url(下面的配置解決問題)

#在e版之後新增了負載均衡的配置。

#配置中provider-user只是乙個路由名稱,可自定義名稱

zuul:

routes:

provider-user:

path: /user/**

service-id: provider-user

ribbon:

eureka:

enabled: false #禁止ribbon使用eureka

provider-user:

ribbon:

listofservers: localhost:8000,localhost:8001

#配置中provider-user只是路由名稱,可自定義

zuul.routes.provider-user.path=/user/**

zuul.routes.provider-user.serviceid=provider-user

ribbon.eureka.enabled=false

provider-user.ribbon.listofservers=localhost:8002,localhost:8003

既指定path與url,又不破壞zuul的hystrix與ribbon特性,解決了上面的問題。

zuul:

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

routes:

provider-user: /user/**

zuul.ignored-patterns=/**/admin/**

zuul.routes.provider-user:/user/**

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

配合prefix使用。

zuul:

prefix: /api

strip-prefix: false

routes:

provider-user: /user/**

#prefix全域性配置字首 api

#strip-prefix:false 表示保留字首訪問(預設為true)

#示例如下

#strip-prefix:true : localhost:8004/api/user/getuser 自動轉到路徑 localhost:8002/user/getuser

#strip-prefix:false : localhost:8004/api/user/getuser 自動轉到路徑 localhost:8002/user/api/getuser

zuul.prefix=/api

zuul.routes.provider-user.strip-prefix=false

zuul.routes.provider-user=/user/**

prefix全域性配置字首 api

strip-prefix:false 表示保留字首訪問(預設為true)

示例如下

strip-prefix:true : localhost:8004/api/user/getuser 自動轉到路徑 localhost:8002/user/getuser

strip-prefix:false : localhost:8004/api/user/getuser 自動轉到路徑 localhost:8002/user/api/getuser

如無法掌握zuul路由的規律,可將com.netflix包的日誌級別設為debug。這樣,zuul就會列印**的具體細節,從而幫助我們更好地理解zuul的路由配置

logging:

level:

com.netflix: debug

logging.level.com.netflix=debug

文章**至:

SpringCloud 商城系統搭建之Zuul

spring cloud zuul路由是微服務架構的不可或缺的一部分,提供動態路由,監控,彈性,安全等的邊緣服務。zuul是netflix出品的乙個基於jvm路由和服務端的負載均衡器。本文是基於springcloud 系統搭建之eureka pom.xml 4.0.0 com.zzg superma...

springcloud筆記7 服務閘道器Zuul

zuul 主要提供了對請求的路由與過濾功能。1,建立springboot工程,匯入依賴 1.8 hoxton.release org.springframework.cloud spring cloud starter netflix eureka client org.springframewor...

springcloud教程之服務閘道器zuul基礎篇

springcloud教程之服務閘道器zuul基礎篇。為什麼需要api gateway 1 簡化客戶端呼叫複雜度 在微服務架構模式下後端服務的例項數一般是動態的,對於客戶端而言很難發現動態改變的服務例項的訪問位址資訊。因此在基於微服務的專案中為了簡化前端的呼叫邏輯,通常會引入api gateway作...