W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
RequestRateLimiter
GatewayFilter工廠使用RateLimiter
實現(xiàn)來確定是否允許繼續(xù)當(dāng)前請求。如果不是,則返回狀態(tài)HTTP 429 - Too Many Requests
(默認)。
該過濾器采用一個可選的keyResolver
參數(shù)和特定于速率限制器的參數(shù)(請參見下文)。
keyResolver
是實現(xiàn)KeyResolver
接口的bean。在配置中,使用SpEL通過名稱引用bean。#{@myKeyResolver}
是引用名稱為myKeyResolver
的bean的SpEL表達式。
KeyResolver.java。
public interface KeyResolver { Mono<String> resolve(ServerWebExchange exchange); }
KeyResolver
接口允許可插拔策略派生用于限制請求的密鑰。在未來的里程碑中,將有一些KeyResolver
實現(xiàn)。
KeyResolver
的默認實現(xiàn)是PrincipalNameKeyResolver
,它從ServerWebExchange
檢索Principal
并調(diào)用Principal.getName()
。
默認情況下,如果KeyResolver
未找到密鑰,則請求將被拒絕。可以使用spring.cloud.gateway.filter.request-rate-limiter.deny-empty-key
(對或錯)和spring.cloud.gateway.filter.request-rate-limiter.empty-key-status-code
屬性來調(diào)整此行為。
無法通過“快捷方式”符號配置RequestRateLimiter。以下示例無效
application.properties。
# INVALID SHORTCUT CONFIGURATION spring.cloud.gateway.routes[0].filters[0]=RequestRateLimiter=2, 2, #{@userkeyresolver}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: