日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

觸發網關防護規則后的限流策略

若默認配置不能滿足您的需求時,您可以自定義應用觸發流控、降級或系統規則后的邏輯。本文將介紹適用于SDK接入方式的邏輯配置方法。

Spring Cloud Gateway

若您的網關是Spring Cloud Gateway,則默認的限流處理邏輯是返回默認的流控文本Blocked by Sentinel,返回status code429 Too Many Requests。您可以通過以下Spring配置項來配置限流后的處理策略。

  • spring.cloud.sentinel.scg.fallback.mode:限流處理策略,目前支持跳轉redirect和自定義返回response兩種策略。
  • spring.cloud.sentinel.scg.fallback.redirect:限流之后的跳轉URL,僅在mode=redirect的時候生效。
  • spring.cloud.sentinel.scg.fallback.response-body:限流之后的返回內容,僅在mode=response的時候生效。
  • spring.cloud.sentinel.scg.fallback.response-status:限流之后的返回status code,僅在mode=response的時候生效。

除此之外,您也可以在GatewayCallbackManager上通過setBlockHandler注冊函數實現自定義的邏輯處理被限流的請求,對應接口為BlockRequestHandler,編寫邏輯可參考DefaultBlockRequestHandler默認實現類。

說明 YAML文件請注意轉成YAML配置的形式。

Zuul 1.x

若您的網關是Zuul 1.x,則默認的限流處理邏輯是返回默認的流控文本,返回status code429 Too Many Requests

您可以通過注冊回調的方式定制處理異常,示例如下。

// 自定義FallbackProvider。
public class MyBlockFallbackProvider implements ZuulBlockFallbackProvider {

    @Override
    public String getRoute() {
        // 對應的route或API group。
        return "book-service";
    }

    @Override
        public BlockResponse fallbackResponse(String route, Throwable cause) {
            if (cause instanceof BlockException) { // AHAS流控、降級、系統保護異常。
                return new BlockResponse(429, "Blocked by AHAS Sentinel", route);
            } else {
                return new BlockResponse(500, "System Error", route);
            }
        }
 }

 // 注冊FallbackProvider。
 ZuulBlockFallbackManager.registerProvider(new MyBlockFallbackProvider());