1. 程式人生 > 程式設計 >SpringCloud Zuul基本使用方法彙總

SpringCloud Zuul基本使用方法彙總

SpringCloud Zuul 是SpringCloud系列的閘道器實現,具有均衡負載,將非業務性校驗剝離出來,使微服務專注於業務的一個元件

使用Zuul閘道器後,所有的請求都通過網路進行轉發,所以所有的請求都隱藏了自己的主機及埠資訊,而是統一使用Zuul閘道器的主機及埠號作為請求入口,Zuul閘道器在收到請求後,會根據serviceId自動發現目標微服務地址,然後將請求轉發到目標微服務上進行處理.

Zuul仍然是開箱即用工具系列,因此仍然適用4部曲套路:

1. 引入依賴: spring-cloud-starter-zuul

2. 新增支援: 在啟動類上新增@EnableZuulProxy

3. 具體使用: zuul會自動從註冊中心上發現微服務,並建立閘道器代理

4. 按需配置: 如果集成了Eureka,則Zuul會自動從註冊中心獲取所有應用,自動根據serviceId建立轉發規則,如果沒有整合註冊中心,則需要配置一下:

  4.1 指定轉發的匹配規則: zuul.routes.serviceId-1.path=/serviceId-1/** 表示路徑中匹配了serviceId-1/的請求

  4.2 指定轉發的目標URL: zuul.routes.serviceId-1.url=http://域名:埠/ 表示將匹配了serviceId-1的請求轉發到http://域名:埠/處處理

  4.3 匹配規則和url是成對的,它們的主鍵都是serviceId-1,而serviceId-1是每個微服務的服務ID或可以辨識這個微服務的識別符號

  如果微服務有叢集,此時需要對上述配置對稍作調整,需要指定某個serviceId下的叢集例項列表

  4.1 指定轉發的匹配規則: zuul.routes.serviceId-1.path=/serviceId-1/**

  4.2 指定轉發的目標此時不是直接用url了,而是要指定serviceId,因為serviceId可以對應多個url叢集: zuul.routes.serviceId-1.service-id=serviceId-1

  4.3 指定serviceId-1對應的叢集例項的url列表: serviceId-1.ribbon.listOfServers=http://域名1:埠1/,http://域名2:埠2/,.......有多少叢集例項,就寫多少對應的url(很顯然這種手動方式不符合主流需要)

注意點:

1. 閘道器對不同微服務的轉發是以serviceId作為區分標誌的,因此每個匹配規則配置對,都是以serviceId作為主鍵的.有多少微服務,就需要配置多少對這樣的配置對

2. serviceId是小寫的,因此請求路徑上必須使用小寫.預設情況下,serviceId是spring.application.name的全小寫,因此如果想以應用名作為path名稱的話,需要用其小寫.

2. 如果集成了eureka,則zuul會自動發現服務並自動為每個微服務建立轉發規則.就不需要手動配置那麼多得配置對了.

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。