網關基礎中間件
基于Spring Cloud Gateway擴充實作
github 位址
說明
服務端需要支援Eureka協定注冊到Eureka注冊中心中,網關會自動服務發現Eureka上注冊的服務清單,當發生請求時進行服務端負載均衡。
快速部署
- 初始化SQL(在doc檔案夾下)
- 啟動Eureka
- 修改網關Eureka位址
實作功能
- 支援API參數校驗 (已完成)
- 支援appId授權服務校驗 (已完成)
實作原理
- 在分布式環境下 采用與Eureka Server相同的服務清單緩存更新政策,一級緩存為堆内記憶體,二級緩存為Guava堆外記憶體,配置内容儲存在持久化裝置中(預設資料庫)。
架構圖
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL9kFRPh3YE9kMFRVT3V1MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLxkzM2MjMxITM3EjNwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
Spring Cloud 微服務架構網關位置
子產品說明
子產品 | 說明 |
---|---|
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授權服務校驗 |