SpringCloud學習筆記(七) Zuul路由網關

概述

GitHub

Zuul包含了對請求的路由過濾兩個最主要的功能:

其中路由功能負責將外部請求轉發到具體的微服務實例上,是實現外部訪問統一入口的基礎;

而過濾器功能則負責對請求的處理過程進行干預,是實現請求校驗、服務聚合等功能的基礎。

Zuul和Eureka進行整合,將Zuul自身註冊爲Eureka服務治理下的應用,同時從Eureka中獲得其他微服務的消息,也即以後的訪問微服務都是通過Zuul跳轉後獲得。

注意:Zuul服務最終還是會註冊進Eureka
提供 = 代理 + 路由 + 過濾 三大功能

路由基本配置

新建Module模塊【microservicecloud-zuul-gateway-9527

POM

<!--zuul路由網關-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zuul</artifactId>
</dependency>

<!-- 將微服務provider註冊進Eureka -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
</dependency>

YML

server:
  port: 9527

spring:
  application:
    name: microservicecloud-zuul-gateway

eureka:
  client:
    service-url:
     defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
  instance:
    instance-id: gateway-9527.com
    prefer-ip-address: true

info:
  app.name: microcloud-gateway
  company.name: www.demo.com
  build.artifactId: $project.artifactId$
  build.version: $project.version$

hosts修改

C:\Windows\System32\drivers\etc路徑下的hosts文件,新增如下內容:

127.0.0.1		myzuul.com

主啓動類

主啓動類添加註解@EnableZuulProxy

啓動

三個eureka集羣
一個服務提供類microservicecloud-provider-dept-8001
一個路由

測試

不用路由:http://localhost:8001/dept/get/2

啓用路由:http://myzuul.com:9527/microservicecloud-dept/dept/get/2

路由訪問映射規則

修改microservicecloud-zuul-gateway-9527模塊,做真實微服務名的映射,
原本是通過http://myzuul.com:9527/microservicecloud-dept/dept/get/2訪問,
現在通過http://myzuul.com:9527/mydept/dept/get/2訪問

yml

zuul:
  routes:
    mydept.serviceId: microservicecloud-dept
    mydept.path: /mydept/**

但是隻在yml文件中這樣配置的話,原路徑和新路徑都可以訪問成功,現在要使原路徑訪問方式失效、

原真實服務名忽略

yml添加配置

# 忽略特定的服務名
zuul:
  ignored-services: microservicecloud-dept

# 若想忽略所有的原真實服務名,添加如下配置
zuul:
  ignored-services: "*"

設置統一公共前綴

yml添加配置,通過http://myzuul.com:9527/shinkaDemo/mydept/dept/get/2可訪問

zuul:
  prefix: /shinkaDemo
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章