全部產品
Search
文件中心

Alibaba Cloud Service Mesh:ASMGlobalRateLimiter CRD說明

更新時間:Jun 30, 2024

ASM通過ASMGlobalRateLimiter實現全域限流的聲明式配置。本文介紹ASMGlobalRateLimiter的欄位說明。

spec

欄位

類型

是否必選

說明

workloadSelector

map<string, string>

通過一個或多個標籤,指明限流配置生效的一組特定的工作負載。標籤搜尋的範圍限制在資源所在的配置命名空間。更多資訊,請參見Workload Selector

isGateway

bool

限流配置生效的工作負載是否為網關,預設為false。

rateLimitService

RateLimitServiceConfig

限流服務配置。

configs

GlobalRateLimiterConfig[]

全域限流配置,可配置多條。

RateLimitServiceConfig

欄位

類型

是否必選

說明

host

string

限流服務Service的叢集網域名稱。

port

int

限流服務的Service gRPC連接埠。

timeout

Duration

網格代理串連限流服務的逾時時間。例如seconds: 1nanos: 1000。nanos表示納秒。

GlobalRateLimiterConfig

欄位

類型

是否必選

說明

name

string

單條限流配置的名稱。

match

RatelimitMatch

匹配條件。

limit

GlobalServiceLimitConfig

限流閾值配置。

limit_overrides

GlobalRateLimitOverrideConfig[]

限流閾值覆蓋配置。可通過該欄位針對特定的請求指定單獨的限流閾值。支援配置多個覆蓋配置。

說明

僅支援ASM 1.19.0及以上版本。

RatelimitMatch

欄位

類型

是否必選

說明

vhost

VirtualHostMatch

VirtualHost匹配條件。

GlobalServiceLimitConfig

欄位

類型

是否必選

說明

unit

string

限流計量時間單位。取值:

  • MINUTE:分

  • SECOND:秒

quota

int

單位時間內允許的請求總量。

GlobalRateLimitOverrideConfig

欄位

類型

是否必選

說明

request_match

RequestMatcher

限流閾值覆蓋配置指定的請求匹配條件。只有匹配條件的請求會應用覆蓋配置中的限流閾值。

limit

GlobalServiceLimitConfig

限流閾值覆蓋配置指定的請求限流閾值。

VirtualHostMatch

欄位

類型

是否必選

說明

name

string

匹配的VirtualHost名稱。

port

int

匹配的請求連接埠。

route

RouteMatch

匹配的請求介面對應的路由名稱。

RouteMatch

欄位

類型

是否必選

說明

name_match

string

匹配的路由名稱,對應VirtualService下的單條路由名稱。

header_match

HeaderMatcher[]

匹配服務要求的Header,支援配置多個。

說明

在ASM 1.19.0及以上版本,該欄位被標註為廢棄(Deprecated),請使用GlobalRateLimitOverrideConfig對請求進行匹配。

RequestMatcher

說明

RequestMatcher中的多個欄位可以同時使用。同時使用時,請求必須同時符合每個欄位的匹配條件才會被匹配。

欄位

類型

是否必選

說明

header_match

HeaderMatcher[]

匹配請求的header,支援配置多個。

remote_address

RemoteAddressMatcher

匹配請求的源IP。

query_match

QueryParameterMatcher[]

匹配請求的查詢參數(query params),支援配置多個。

RemoteAddressMatcher

欄位

類型

是否必選

說明

address

string

匹配的請求源的IP地址。

v4_prefix_mask_len

unit32

如果需要匹配IPv4位址範圍,在此欄位填寫IPv4地址子網路遮罩長度,並在address處填寫IPv4地址。將會匹配address在掩碼後的位址範圍。

v6_prefix_mask_len

unit32

如果需要匹配IPv6位址範圍,在此欄位填寫IPv6地址子網路遮罩長度,並在address處填寫IPv6地址。將會匹配address在掩碼後的位址範圍。

HeaderMatcher

欄位

類型

是否必選

說明

name

string

Header名稱。

任選其一

regex_match

string

Regex匹配。

exact_match

string

精確匹配。

prefix_match

string

首碼匹配,以什麼開頭進行匹配。

suffix_match

string

尾碼匹配,以什麼結尾進行匹配。

present_match

bool

  • 配置為true,表示存在Header即可,無需關注Header Value的取值。

  • 配置為false,表示不存在Header。

invert_match

bool

預設為false。

  • 配置為true,表示上述匹配結果取反。

  • 配置為false,表示遵循上述匹配結果。

QueryParameterMatcher

欄位

類型

是否必選

說明

name

string

查詢參數的名稱。

任選其一

exact_match

string

精確匹配查詢參數的內容。

prefix_match

string

首碼匹配查詢參數的內容。

suffix_match

string

尾碼匹配查詢參數的內容。

regex_match

string

Regex匹配查詢參數的內容。

contains_match

string

包含匹配查詢參數的內容,即要求查詢參數的內容必須包含某個子串。

present_match

bool

  • 配置為true,表示進行存在性匹配,即存在指定的查詢參數即可,不關注內容。

  • 不能配置false,配置為false等同於不配置,需要指定其它匹配條件。

ignore_case

bool

是否在匹配查詢參數時忽略大小寫。

相關文檔

使用ASMGlobalRateLimiter對應用服務入口流量配置全域限流