一、zuul的介紹
zuul包含了對請求的路由和過濾兩個最主要的功能:
其中路由功能負責將外部請求**到具體的微服務實力上,是實現外部訪問統一入口基礎而過濾器功能則負責對請求的處理過程進行干預,是實現請求校驗、服務聚合等功能的基礎。
zuul和eureka進行整合,將zuul自身註冊到eureka服務治理下的應用,同時從eureka中獲得其他微服務的訊息,也即以後的訪問微服務都是通過zuul跳轉後獲得的。
注意:zuul最終還是會註冊到eureka。
提供=**+路由+過濾三大功能
二、路由的基本配置
1、新建工程:microservicecloud-zuul-gateway-9527
2、pom.xml檔案新增依賴的jar
org.springframework.cloud
spring-cloud-starter-zuul
org.springframework.cloud
spring-cloud-starter-eureka
org.springframework.boot
spring-boot-starter-actuator
org.springframework.cloud
spring-cloud-starter-hystrix
org.springframework.cloud
spring-cloud-starter-config
com.atguigu.springcloud
microservicecloud-api
$ org.springframework.boot
spring-boot-starter-jetty
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
org.springframework
springloaded
org.springframework.boot
spring-boot-devtools
eureka:
client:
service-url:
defaultzone:
instance:
instance-id: gateway-9527.com
prefer-ip-address: truero
ject
.art
ifac
tidproject.artifactid
projec
t.ar
tifa
ctid
build.version: pro
ject
.ver
sion
project.version
projec
t.ve
rsio
n 4、hosts的修改
(1)開啟 c:\windows\system32\drivers\etc\hosts 檔案;
(2)增加:127.0.0.1 myzuul.com
5、主啟動類,新增@enablezuulproxy
6、測試
(1)啟動三個eureka集群, 乙個microservicecloud-provider-dept-8001,啟動路由閘道器微服務;
(2)不用路由和啟動路由的結果一樣;
不用路由:http://localhost:8001/dept/get/2
啟用路由:
三、路由訪問對映規則
以上使用 訪問,則暴露出了呼叫的微服務名為 microservicecloud-dept;為了不暴露出微服務的真正名稱,使用路由訪問對映;
1、在yml檔案中增加路由對映
#路由對映
zuul:
routes:
mydept:
serviceid: microservicecloud-dept
path: /mydept/**
在yml修改之前使用: 訪問;
在yml修改之後使用: 訪問;
2、此時使用 和 都可以成功的呼叫該介面,還是會暴露呼叫的微服務名為microservicecloud-dept;所以需要去讓使用 鏈結不能夠訪問;
(1)因此,需要在yml檔案中增加原服務的忽
#路由對映
zuul:
ignored-services: microservicecloud-dept
routes:
mydept:
serviceid: microservicecloud-dept
path: /mydept/**
ignored-services:特別注意此處的配置。通過配置此選項,限制不能通過訪問服務名去訪問微服務
如果想把其他很多的微服務都通過配置忽略掉真實訪問路徑則直接使用 」*」 來代替。
(2)重啟微服務
<1> 使用原路徑訪問報錯,
<2> 使用路由對映路徑可以正常訪問:
(3)在實際的使用時候,有很多個伺服器需要限制不能通過服務名去訪問;則在yml做如下的修改:
#路由對映
zuul:
ignored-services: 「*」
routes:
mydept:
serviceid: microservicecloud-dept
path: /mydept/**
測試結果與上面的結果一樣;
3、設定統一公共字首
(1)修改yml檔案,如下所示
#路由對映
zuul:
prefix: /yufeng
ignored-services: 「*」
routes:
mydept:
serviceid: microservicecloud-dept
path: /mydept/**
(2)測試
<1> 在瀏覽器中開啟:,報錯如下:
<2> 在瀏覽器中開啟:可以正常訪問;
Zuul路由閘道器
zuul路由閘道器 概述 1.zuul提供外部的請求 到具體的微服務例項中的服務 2.路由 zuul可以對外部訪問實現統一的入口 3.過濾 zuul可以對外部訪問進行干預,如請求校驗 服務聚合等 4.zuul需要配合eureka使用,需要在eureka中註冊並獲得其他微服務的資訊 5.理解 zuul...
Zuul路由閘道器
1.1 什麼是zuul zuul包含了對請求的路由和過濾這兩個主要的功能 zuul和eureka進行整合,將zuul自身註冊為eureka服務治理下的應用,同時從eureka中獲得其他微服務的訊息,也就是說以後訪問微服務都是通過zuul跳轉後獲得 1.2 zull簡單使用 編寫服務,匯入依賴 org...
Zuul路由閘道器
首先還是導包 需要eureka zuul的包 org.springframework.cloudgroupid spring cloud starter netflix eurekaartifactid dependency org.springframework.cloudgroupid spri...