Zuul 路由的介紹

2021-10-01 17:08:39 字數 3590 閱讀 2216

一、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...