SpringCloud全家桶學習之路由網關----Zuul(六)

1、Zuul概述

(1)Zuul是什麼?

  Zuul包含了對請求的路由過濾的兩個最主要的功能,其中路由功能負責將外部請求轉發到具體的微服務實例上,是實現外部訪問統一入口的基礎;而過濾功能則負責對請求的處理過程進行干預,是實現請求校驗、服務聚合等功能的基礎,Zuul和Eureka進行整合,將Zuul自身註冊爲Eureka服務治理下的應用,同時從Eureka中得到其餘微服務的消息,也即之後的訪問微服務都是經過zuul跳轉後得到。git

  github

    ①Zuul服務最終仍是會註冊到Eurekaspring

    ②提供代理、路由、過濾三大功能app

  本項目地址:https://github.com/Simple-Coder/microservice-demo-studyide

(2)官網介紹

  源碼參考地址:https://github.com/Netflix/zuul/wiki/Getting-Started-2.0微服務

  

 2、Zuul路由基本配置

(1)Maven模塊結構圖

 (2)microservice-zuul-gateway9527模塊添加pom依賴

        <!--zuul相關-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zuul</artifactId>
        </dependency>
        <!--eureka相關-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
        </dependency>    
pom

(3)microservice-zuul-gateway9527模塊添加:application.yml

server:
  port: 9527
spring:
  application:
    name: microservice-zuul-gateway
eureka:
  client:
    service-url:
      defaultZone: http://eureka8001:8001/eureka,http://eureka8002:8002/eureka,http://eureka8003:8003/eureka
  instance:
    instance-id: gateway-9527
    prefer-ip-address: true

info:
  app.name: microservice-zuul-gateway
  company.name: www.microservice.com
  build.artifactId: $project.artifactId$
  build.version: $project.version$
application.yml

(4)本地hosts文件修改:C:\Windows\System32\drivers\etc

(5)依次啓動3個eureka、1個provider、網關zuul-gateway,出現如下界面說明啓動成功!

 

 (6)測試(分爲使用路由、不使用路由2個測試)

①不使用路由訪問:http://localhost:9001/provider/get/1001

②使用路由訪問:http://myzuul.com:9527/microservice-provider/provider/get/1001(http://本地網關hosts名:端口/服務提供者服務名稱/具體地址映射)

   至此,zuul的基本配置完成,接下來就是zuul路由訪問映射規則測試

 3、Zuul路由訪問映射規則

  咱們上邊的測試:http://myzuul.com:9527/microservice-provider/provider/get/1001,紅色部分使用的是真實的微服務名稱,在實際生產中確定不會暴露出來的。因此須要對網關的配置文件進行修改完成如下功能:ui

(1)以前訪問:http://myzuul.com:9527/microservice-provider/provider/get/1001

(2)application.yml添加以下配置:

 

(3)如今訪問:http://myzuul.com:9527/myprovider/provider/get/1001

 (4)此時問題

  以上兩個地址此時均可以訪問成功!違反了單入口的原則,因此application.yml文件還需添加如下內容! url

 (5測試

①訪問:http://myzuul.com:9527/microservice-provider/provider/get/1001,界面以下測試成功!

②訪問:http://myzuul.com:9527/myprovider/provider/get/1001,界面以下,說明忽略微服務真實名稱成功!

  此時,微服務名稱對外不暴露,只提供對外訪問的部分url,經過網關配置完成!spa

4、總結

  zuul模塊相對其餘模塊來講,helloworld入門比較簡單,作了如下小總結:

  ①zuul主要提供路由轉發和過濾功能

  ②zuul最終仍是會註冊到eureka,從eureka中獲取其餘微服務信息

參考地址:https://www.iteye.com/blog/huan1993-2424676

相關文章
相關標籤/搜索