zuul路由代理設置
- 2019 年 11 月 1 日
- 筆記
版權聲明:本文為部落客原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/weixin_44580977/article/details/99468890
所有微服務註冊到註冊中心,調用微服務前先訪問zuul代理,由zuul訪問控制訪問服務,那麼zuul如何配置呢?
pom中zuul的坐標
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-netflix-zuul</artifactId> <version>2.0.0.RELEASE</version> </dependency>
Zuul在架構中的的位置

在開啟了啟動類開啟了ZuulProxy後,配置路由有三種方式
zuul: routes: user-service: # 這裡是路由id,隨意寫 path: /user-service/** # 這裡是映射路徑 url: http://127.0.0.1:8081 # 映射路徑對應的實際url地址
我們將符合path 規則的一切請求,都代理到 url參數指定的地址
我們將 /user-service/**開頭的請求,代理到http://127.0.0.1:8081
如上,這樣寫就寫死了,如果同一服務有多個實例的話,這樣做顯然就不合理了。我們應該根據服務的名稱,去Eureka註冊中心查找 服務對應的所有實例列表,然後進行動態路由才對!
因此添加Eureka客戶端依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
啟動類開啟客戶端發現後,配置路由如下
eureka: client: registry-fetch-interval-seconds: 5 # 獲取服務列表的周期:5s service-url: defaultZone: http://127.0.0.1:10086/eureka instance: prefer-ip-address: true ip-address: 127.0.0.1 # 以上是eureka客戶端的配置 # 因為已經有了Eureka客戶端,我們可以從Eureka獲取服務的地址資訊, # 因此映射時無需指定IP地址,而是通過服務名稱來訪問,而且Zuul已經集成了Ribbon的負載均衡功能。 zuul: routes: user-service: # 這裡是路由id,隨意寫 path: /user-service/** # 這裡是映射路徑 serviceId: user-service # 指定服務名稱
一般路由id 是和服務名字相同所以可以簡化配置寫成如下
zuul: routes: user-service: /user-service/** # 這裡是映射路徑
user-service代表服務id,通過服務id可以在註冊中心找到地址,然後執行 localhost/port/user-service/*** 的請求。