天天看點

擴充Spring-Cloud-Gateway API網關網關基礎中間件

網關基礎中間件

基于Spring Cloud Gateway擴充實作

github 位址

說明

服務端需要支援Eureka協定注冊到Eureka注冊中心中,網關會自動服務發現Eureka上注冊的服務清單,當發生請求時進行服務端負載均衡。

快速部署

  1. 初始化SQL(在doc檔案夾下)
  2. 啟動Eureka
  3. 修改網關Eureka位址

實作功能

  • 支援API參數校驗 (已完成)
  • 支援appId授權服務校驗 (已完成)

實作原理

  • 在分布式環境下 采用與Eureka Server相同的服務清單緩存更新政策,一級緩存為堆内記憶體,二級緩存為Guava堆外記憶體,配置内容儲存在持久化裝置中(預設資料庫)。

架構圖

擴充Spring-Cloud-Gateway API網關網關基礎中間件

Spring Cloud 微服務架構網關位置

擴充Spring-Cloud-Gateway API網關網關基礎中間件

子產品說明

子產品 說明
base-service-api-gateway-core 網關核心子產品 定義網關統一模型和接口規範
base-service-api-gateway-dashboard 網關管理控制台服務 對網關進行運維操作 例如:ak sk下發配置
base-service-api-gateway-limit 網關限流操作子產品 對API進行流量降級、熔斷等控制
base-service-api-gateway-server 網關服務 對外提供統一API
base-service-api-gateway-storage 網關存儲子產品 定義實作網關相關的存儲化功能 預設為資料庫
base-service-api-gateway-storage-db 網關存儲子產品 資料庫實作
base-service-api-gateway-util 網關工具子產品 定義網關需要的特殊工具包

網關配置說明

  • 緩存配置說明
spring:
  cloud:
    gateway:
      cache:
        shouldUseReadOnlyServerCache: true #是否開啟服務清單二級緩存配置 預設:開啟
        serverCacheAutoExpirationInSeconds: 180 # 二級緩存服務清單緩存自動過期時間 預設: 180秒
        initialCapacityOfServerCache: 100 #初始化二級緩存清單大小 預設: 100
        serverCacheUpdateIntervalMs: 30000 #二級緩存更新一級緩存間隔時間 預設: 30秒
        skip: false #是否跳過緩存 預設:false不跳過
           
  • 簽名配置說明
spring:
  cloud:
    gateway:
      app:
        appId: X-GW-APPID #AppID定義的名稱 預設:X-GW-APPID
        timestamp: X-GW-Timestamp #時間戳定義的名稱 預設:X-GW-Timestamp
        sign: X-GW-SIGN # Sign定義的字段名稱 預設:X-GW-SIGN
        durationMt: 30000 #API接口間隔時間 預設: 預設5分鐘 1000 * 60 * 5L
        skip: false #是否跳過簽名校驗 預設:false不跳過
           
  • 授權服務配置說明
spring:
  cloud:
    gateway:
      server:
        skip: false #是否跳過授權服務校驗 預設:false不跳過
           

版本說明

版本 修改内容 說明
1.0.0 第一次釋出 支援API參數校驗;支援appId授權服務校驗