天天看點

zuul路由網關1.概述2.路由基本配置3. 路由通路映射規則修改

1.概述

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

  • 路由功能

    主要負責将外部請求轉發到具體的微服務上,是實作外部通路入口的基礎

  • 過濾功能

    負責對請求的處理過程進行幹預,是實作請求校驗、服務聚合等功能的基礎

Zuul與Eureka進行整合,将Zuul自身注冊為Eurekad的服務治理下的應用,同時從Eureka中獲得其他微服務的資訊,也即以後的微服務通路都是通過Zuul跳轉後獲得。

三大功能: 代理、路由、過濾

2.路由基本配置

2.1引入相關pom

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
    <groupId>com.jsp.springcloud</groupId>
    <artifactId>servicecloud</artifactId>
    <version>1.0-SNAPSHOT</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
    <groupId>com.jsp.springcloud</groupId>
    <artifactId>servicecloud-zull-gateway-9527</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>servicecloud-zull-gateway-9527</name>
    <description>Demo project for Spring Boot</description>


    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
        </dependency>


        <!-- eureka 用戶端 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
            <version>1.4.7.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
            <version>2.1.0.RELEASE</version>
        </dependency>
        <!-- 主管監控和配置 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
            <version>2.1.3.RELEASE</version>
        </dependency>
    </dependencies>


    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>
           

2.2application.properties

server.port=9527

spring.application.name=servicecloud-zuul-gateway

#用戶端注冊進eureka服務清單
#eureka.client.service-url.defaultZone= http://localhost:7001/eureka
eureka.client.service-url.defaultZone=http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/
#自定義服務名稱資訊
eureka.instance.instance-id=gateway-9527.com
#通路路徑顯示ip位址
eureka.instance.prefer-ip-address=true

#eureka 超連結的資訊
info.app.name=jsp-servicecloud
info.company.name=www.jsp.com
info.build.artifactId=$project.artifactId$
info.build.version=$project.version$

#修改路由,不顯示微服務名稱 若多個微服務可以 把服務名替換為 "*"
zuul.routes.mydept.service-id=servicecloud-dept
#zuul.routes.mydept.service-id="*"
zuul.routes.mydept.path=/mydept/**
#忽略通過服務名調用的接口 -== 原路徑無法調用
zuul.ignored-services=servicecloud-dept
#可設定公共字首. 不帶字首無法通路  localhost:9527/jsp/mydept/get/1
zuul.prefix=/jsp
           

2.3 @EnableZuulProxy注解

在主啟動類上加該注解即可開啟zuul

3. 路由通路映射規則修改

3.1 隐藏真實服務名, 通過特定path調用

3.2 設定統一公共字首 ->必須加上該字首才可以通路到

#修改路由,不顯示微服務名稱 若多個微服務可以 把服務名替換為 "*"
zuul.routes.mydept.service-id=servicecloud-dept
#zuul.routes.mydept.service-id="*"
zuul.routes.mydept.path=/mydept/**
#忽略通過服務名調用的接口 -== 原路徑無法調用
zuul.ignored-services=servicecloud-dept
#可設定公共字首. 不帶字首無法通路  localhost:9527/jsp/mydept/get/1
zuul.prefix=/jsp
           

繼續閱讀