SpringCloud之Gateway

Spring Cloud Gateway

最近在看項目中的SpringCloud的網關Gateway的代碼,發現裏面的過濾器以及各種網關代理寫法,有點無法下手,便打算從官網方面找些資料來加深瞭解,之前是有寫過demo,但是理解不算深!

簡介

Spring Cloud GateWay它是提供了一個建立在Spring生態系統之上的API網關,包括:Spring 5、Spring Boot 2和project Reactor。
旨在提供一種簡單而有效的方法來路由到api,併爲它們提供跨領域的關注點,例如:安全性、監控/度量和彈性。

詞彙

Route

路由,網關的基本組成模塊,它由ID、目標代理的URI、斷言集合和過濾器集合所組成,可以先看一下大致的結構:

spring:
  cloud:
    gateway:
      routes:
      - id: after_route
        uri: https://example.org
        predicates: #對以下斷言集合屬性做控制
        - name: Cookie
          args:
            name: mycookie
            regexp: mycookievalue
        - Path=/api/pvs/** #此等路徑將視爲provider應用
        filters:
        	- StripPrefix=1 #截取掉/api,實際-Path就爲 /pvs/
            # 限流過濾器,使用gateway內置令牌算法
            - name: RequestRateLimiter
              args:
                # 令牌桶每秒填充平均速率,即行等價於允許用戶每秒處理多少個請求平均數
                redis-rate-limiter.replenishRate: 10
                # 令牌桶的容量,允許在一秒鐘內完成的最大請求數
                redis-rate-limiter.burstCapacity: 20
                # 用於限流的鍵的解析器的 Bean 對象的名字。它使用 SpEL 表達式根據#{@beanName}從 Spring 容器中獲取 Bean 對象。
                key-resolver: "#{@apiKeyResolver}"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章