溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

SpringCloud Zuul基本使用方法匯總

發(fā)布時間:2020-09-20 06:12:06 來源:腳本之家 閱讀:129 作者:一馬平川1 欄目:開發(fā)技術(shù)

SpringCloud Zuul 是SpringCloud系列的網(wǎng)關(guān)實現(xiàn),具有均衡負(fù)載,將非業(yè)務(wù)性校驗剝離出來,使微服務(wù)專注于業(yè)務(wù)的一個組件

使用Zuul網(wǎng)關(guān)后,所有的請求都通過網(wǎng)絡(luò)進(jìn)行轉(zhuǎn)發(fā),所以所有的請求都隱藏了自己的主機及端口信息,而是統(tǒng)一使用Zuul網(wǎng)關(guān)的主機及端口號作為請求入口,Zuul網(wǎng)關(guān)在收到請求后,會根據(jù)serviceId自動發(fā)現(xiàn)目標(biāo)微服務(wù)地址,然后將請求轉(zhuǎn)發(fā)到目標(biāo)微服務(wù)上進(jìn)行處理.

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

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

2. 添加支持: 在啟動類上添加@EnableZuulProxy

3. 具體使用: zuul會自動從注冊中心上發(fā)現(xiàn)微服務(wù),并創(chuàng)建網(wǎng)關(guān)代理

4. 按需配置: 如果集成了Eureka,則Zuul會自動從注冊中心獲取所有應(yīng)用,自動根據(jù)serviceId建立轉(zhuǎn)發(fā)規(guī)則,如果沒有集成注冊中心,則需要配置一下:

  4.1 指定轉(zhuǎn)發(fā)的匹配規(guī)則: zuul.routes.serviceId-1.path=/serviceId-1/** 表示路徑中匹配了serviceId-1/的請求

  4.2 指定轉(zhuǎn)發(fā)的目標(biāo)URL: zuul.routes.serviceId-1.url=http://域名:端口/ 表示將匹配了serviceId-1的請求轉(zhuǎn)發(fā)到http://域名:端口/處處理

  4.3 匹配規(guī)則和url是成對的,它們的主鍵都是serviceId-1,而serviceId-1是每個微服務(wù)的服務(wù)ID或可以辨識這個微服務(wù)的標(biāo)識符

  如果微服務(wù)有集群,此時需要對上述配置對稍作調(diào)整,需要指定某個serviceId下的集群實例列表

  4.1 指定轉(zhuǎn)發(fā)的匹配規(guī)則: zuul.routes.serviceId-1.path=/serviceId-1/**

  4.2 指定轉(zhuǎn)發(fā)的目標(biāo)此時不是直接用url了,而是要指定serviceId,因為serviceId可以對應(yīng)多個url集群: zuul.routes.serviceId-1.service-id=serviceId-1

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

注意點:

1. 網(wǎng)關(guān)對不同微服務(wù)的轉(zhuǎn)發(fā)是以serviceId作為區(qū)分標(biāo)志的,因此每個匹配規(guī)則配置對,都是以serviceId作為主鍵的.有多少微服務(wù),就需要配置多少對這樣的配置對

2. serviceId是小寫的,因此請求路徑上必須使用小寫.默認(rèn)情況下,serviceId是spring.application.name的全小寫,因此如果想以應(yīng)用名作為path名稱的話,需要用其小寫.

2. 如果集成了eureka,則zuul會自動發(fā)現(xiàn)服務(wù)并自動為每個微服務(wù)建立轉(zhuǎn)發(fā)規(guī)則.就不需要手動配置那么多得配置對了.

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI