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/*** 的請求。