1. 程式人生 > 其它 >SpringCloud08---Zull路由閘道器

SpringCloud08---Zull路由閘道器

1. 什麼是zuul

官方文件:https://github.com/Netflix/zuul/

  • Zull包含了對請求的路由(用來跳轉的)和過濾兩個最主要功能

  • 其中路由功能負責將外部請求轉發到具體的微服務例項上,是實現外部訪問統一入口的基礎,而過濾器功能則負責對請求的處理過程進行干預,是實現請求校驗,服務聚合等功能的基礎。

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

2. 入門案例

1、新建springcloud-zuul模組,並匯入依賴

<dependencies>
    <!--匯入zuul依賴-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-zuul</artifactId>
        <version>1.4.7.RELEASE</version>
    </dependency>
    <!--Hystrix依賴-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-hystrix</artifactId>
        <version>1.4.7.RELEASE</version>
    </dependency>
    <!--dashboard依賴-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
        <version>1.4.7.RELEASE</version>
    </dependency>
    <!--Ribbon-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-ribbon</artifactId>
        <version>1.4.7.RELEASE</version>
    </dependency>
    <!--Eureka-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka</artifactId>
        <version>1.4.7.RELEASE</version>
    </dependency>
    <!--實體類+web-->
    <dependency>
        <groupId>com.qi</groupId>
        <artifactId>springcloud-api</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!--熱部署-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
    </dependency>
</dependencies>

2、application.yml

server:
  port: 9527

spring:
  application:
    name: springcloud-zuul #微服務名稱

# eureka 註冊中心配置
eureka:
  client:
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
  instance: #例項的id
    instance-id: zuul9527.com
    prefer-ip-address: true # 顯示ip

info:
  app.name: qi.springcloud # 專案名稱
  company.name: 9527 # 公司名稱

# zull 路由閘道器配置
zuul:
  # 路由相關配置
  # 原來訪問路由 eg:http://www.cspStudy.com:9527/springcloud-provider-dept/dept/get/1
  # zull路由配置後訪問路由 eg:http://www.cspstudy.com:9527/haust/mydept/dept/get/1
  routes:
    mydept.serviceId: springcloud-provider-dept # eureka註冊中心的服務提供方路由名稱
    mydept.path: /mydept/** # 將eureka註冊中心的服務提供方路由名稱 改為自定義路由名稱
  # 不能再使用這個路徑訪問了,*: 忽略,隱藏全部的服務名稱~
  ignored-services: "*"
  # 設定公共的字首
  prefix: /spring

3、主啟動類

@SpringBootApplication
@EnableZuulProxy // 開啟Zuul
public class ZuulApplication_9527 {

    public static void main(String[] args) {
        SpringApplication.run(ZuulApplication_9527.class,args);
    }
}

4、測試

5、詳情參考springcloud中文社群zuul元件 :https://www.springcloud.cc/spring-cloud-greenwich.html#_router_and_filter_zuul