spring cloud微服務快速教程之(十) gateway 服務網關


0、前言

  gateway是spring的二代網關, 作為Netflix Zuul的替代者,是異步非阻塞網關 ,ZUUL2也是異步非阻塞的,但未納入spring cloud整合計划

  基於WebFlux ,與spring-boot-starter-web沖突,要排除該依賴;ZUUL1是阻塞io的API Gateway,使用簡單方便;

  性能上,自然是異步非阻塞的gateway勝出;

  如何取舍,見仁見智了,不要盲目認為gateway比ZUUL1好,適合項目才是最好的;

  實際項目中建議選擇gateway;

1、集成gateway

1-1、添加依賴

  新建gateway模塊,添加依賴,注意要排除spring-boot-starter-web依賴,不能添加該依賴

        <!-- 集成nacos -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2.0.1.RELEASE</version>
        </dependency>

        <!-- 集成gateway -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>

 

1-2、添加配置

uri: lb://注冊中心的微服務名稱

Path=/api/user/**  相當於該微服務前綴 

StripPrefix=2   表示跳過前綴節數,上面前綴/api/user/是兩節,說以是2,如果/api/則跳過1節

以上幾個常用屬性是通俗的解釋,具體各個屬性及其詳細用法請參考官方文檔

 

server:
  port: 8770
spring:
  application:
    name: gateway
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

    gateway:
      discovery:
        locator:
          enabled: false
          #開啟小寫驗證,默認feign根據服務名查找都是用的全大寫
          lowerCaseServiceId: true
      routes:
        - id: nacos-user
          uri: lb://nacos-user
          predicates:
            - Path=/api/user/**
          filters:
            - StripPrefix=2
        - id: nacos-order
          uri: lb://nacos-order
          predicates:
            - Path=/api/order/**
          filters:
            - StripPrefix=2

 

1-3、運行測試

  以上即可,運行項目,可以看到路由已經正常轉發了

 

 

gateway簡單的路由轉發功能就這樣完成了,其他的諸多路由過濾、匹配、限流等功能以后再探討

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM