SpringCloud Zuul基本使用方法匯總
SpringCloud Zuul 是SpringCloud系列的網(wǎng)關(guān)實(shí)現(xiàn),具有均衡負(fù)載,將非業(yè)務(wù)性校驗(yàn)剝離出來(lái),使微服務(wù)專(zhuān)注于業(yè)務(wù)的一個(gè)組件
使用Zuul網(wǎng)關(guān)后,所有的請(qǐng)求都通過(guò)網(wǎng)絡(luò)進(jìn)行轉(zhuǎn)發(fā),所以所有的請(qǐng)求都隱藏了自己的主機(jī)及端口信息,而是統(tǒng)一使用Zuul網(wǎng)關(guān)的主機(jī)及端口號(hào)作為請(qǐng)求入口,Zuul網(wǎng)關(guān)在收到請(qǐng)求后,會(huì)根據(jù)serviceId自動(dòng)發(fā)現(xiàn)目標(biāo)微服務(wù)地址,然后將請(qǐng)求轉(zhuǎn)發(fā)到目標(biāo)微服務(wù)上進(jìn)行處理.
Zuul仍然是開(kāi)箱即用工具系列,因此仍然適用4部曲套路:
1. 引入依賴(lài): spring-cloud-starter-zuul
2. 添加支持: 在啟動(dòng)類(lèi)上添加@EnableZuulProxy
3. 具體使用: zuul會(huì)自動(dòng)從注冊(cè)中心上發(fā)現(xiàn)微服務(wù),并創(chuàng)建網(wǎng)關(guān)代理
4. 按需配置: 如果集成了Eureka,則Zuul會(huì)自動(dòng)從注冊(cè)中心獲取所有應(yīng)用,自動(dòng)根據(jù)serviceId建立轉(zhuǎn)發(fā)規(guī)則,如果沒(méi)有集成注冊(cè)中心,則需要配置一下:
4.1 指定轉(zhuǎn)發(fā)的匹配規(guī)則: zuul.routes.serviceId-1.path=/serviceId-1/** 表示路徑中匹配了serviceId-1/的請(qǐng)求
4.2 指定轉(zhuǎn)發(fā)的目標(biāo)URL: zuul.routes.serviceId-1.url=http://域名:端口/ 表示將匹配了serviceId-1的請(qǐng)求轉(zhuǎn)發(fā)到http://域名:端口/處處理
4.3 匹配規(guī)則和url是成對(duì)的,它們的主鍵都是serviceId-1,而serviceId-1是每個(gè)微服務(wù)的服務(wù)ID或可以辨識(shí)這個(gè)微服務(wù)的標(biāo)識(shí)符
如果微服務(wù)有集群,此時(shí)需要對(duì)上述配置對(duì)稍作調(diào)整,需要指定某個(gè)serviceId下的集群實(shí)例列表
4.1 指定轉(zhuǎn)發(fā)的匹配規(guī)則: zuul.routes.serviceId-1.path=/serviceId-1/**
4.2 指定轉(zhuǎn)發(fā)的目標(biāo)此時(shí)不是直接用url了,而是要指定serviceId,因?yàn)閟erviceId可以對(duì)應(yīng)多個(gè)url集群: zuul.routes.serviceId-1.service-id=serviceId-1
4.3 指定serviceId-1對(duì)應(yīng)的集群實(shí)例的url列表: serviceId-1.ribbon.listOfServers=http://域名1:端口1/,http://域名2:端口2/,.......有多少集群實(shí)例,就寫(xiě)多少對(duì)應(yīng)的url(很顯然這種手動(dòng)方式不符合主流需要)
注意點(diǎn):
1. 網(wǎng)關(guān)對(duì)不同微服務(wù)的轉(zhuǎn)發(fā)是以serviceId作為區(qū)分標(biāo)志的,因此每個(gè)匹配規(guī)則配置對(duì),都是以serviceId作為主鍵的.有多少微服務(wù),就需要配置多少對(duì)這樣的配置對(duì)
2. serviceId是小寫(xiě)的,因此請(qǐng)求路徑上必須使用小寫(xiě).默認(rèn)情況下,serviceId是spring.application.name的全小寫(xiě),因此如果想以應(yīng)用名作為path名稱(chēng)的話,需要用其小寫(xiě).
2. 如果集成了eureka,則zuul會(huì)自動(dòng)發(fā)現(xiàn)服務(wù)并自動(dòng)為每個(gè)微服務(wù)建立轉(zhuǎn)發(fā)規(guī)則.就不需要手動(dòng)配置那么多得配置對(duì)了.
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- SpringCloud之Zuul網(wǎng)關(guān)原理及其配置講解
- SpringCloud網(wǎng)關(guān)(Zuul)如何給多個(gè)微服務(wù)之間傳遞共享參數(shù)
- SpringCloud Zuul實(shí)現(xiàn)負(fù)載均衡和熔斷機(jī)制方式
- SpringCloud如何實(shí)現(xiàn)Zuul集群(負(fù)載均衡)
- SpringCloud zuul 網(wǎng)關(guān)如何解決跨域問(wèn)題
- SpringCloud Zuul的使用簡(jiǎn)介
- 解決springcloud Zuul丟失Cookie的問(wèn)題
- SpringCloud Zuul服務(wù)功能與使用方法解析
- SpringCloud超詳細(xì)講解微服務(wù)網(wǎng)關(guān)Zuul基礎(chǔ)
相關(guān)文章
Spring學(xué)習(xí)筆記1之IOC詳解盡量使用注解以及java代碼
這篇文章主要介紹了Spring學(xué)習(xí)筆記1之IOC詳解盡量使用注解以及java代碼 的相關(guān)資料,需要的朋友可以參考下2016-07-07
Spring的初始化和XML解析的實(shí)現(xiàn)
這篇文章主要介紹了Spring的初始化和XML解析的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03
idea中如何創(chuàng)建scala項(xiàng)目
idea中創(chuàng)建scala項(xiàng)目有三種方式1.通過(guò)maven;2.通過(guò)idea;3.通過(guò)sbt的方式;本文就每種方法通過(guò)圖文并茂的形式給大家詳細(xì)介紹,需要的朋友參考下吧2021-07-07
JDK動(dòng)態(tài)代理之ProxyGenerator生成代理類(lèi)的字節(jié)碼文件解析
這篇文章主要為大家詳細(xì)介紹了JDK動(dòng)態(tài)代理之ProxyGenerator生成代理類(lèi)的字節(jié)碼文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02
Spring 開(kāi)發(fā)過(guò)程中Value 注解的使用場(chǎng)景
這篇文章主要介紹了Spring 開(kāi)發(fā)過(guò)程中Value 注解的使用場(chǎng)景,幫助大家更好的理解和使用spring框架,感興趣的朋友可以了解下2020-11-11
springboot中@Async默認(rèn)線程池導(dǎo)致OOM問(wèn)題
這篇文章主要介紹了springboot中@Async默認(rèn)線程池導(dǎo)致OOM問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06

