1. 程式人生 > 其它 >SpringCloud: Sentinel

SpringCloud: Sentinel

 java -jar --add-exports=java.base/sun.net.util=ALL-UNNAMED .\sentinel-dashboard-1.8.4.jar --server.port=9090

註解支援 · alibaba/Sentinel Wiki · GitHub

introduction (sentinelguard.io)

Warm up: 冷啟動

 

 

 

 

 

 

排隊等待

 

 

 

 

 

 

關聯:

 

 

 

 

 

 

 

 

 

 

 

 

 

 熱點規則:

 

 

 

 

@RequestMapping(value = "exception")
  @SentinelResource(value = "resourceName", blockHandler = "blockHandler", fallback = "fallback")
  public String ex(Integer id, HttpServletRequest httpServletRequest){
    if(id % 2 == 1)
      throw new RuntimeException(String.format("%s is odd", id));
    return httpServletRequest.getRequestDispatcher("").toString();
  }

  public String blockHandler(Integer id, HttpServletRequest httpServletRequest, BlockException blockException){
    if(blockException instanceof FlowException){
      return "FlowException";
    }
    if(blockException instanceof DegradeException){
      return "DegradeException";
    }
    if(blockException instanceof ParamFlowException){
      return "ParamFlowException";
    }
    if(blockException instanceof SystemBlockException){
      return "SystemBlockException";
    }
    if(blockException instanceof AuthorityException){
      return "AuthorityException";
    }
    return "BlockException";
  }

  public String fallback(Integer id, HttpServletRequest httpServletRequest, Throwable throwable){
    return throwable.getMessage();
  }