当前位置: 首页 > wzjs >正文

深圳网站的做网站公司关键词爱站网关键词挖掘工具

深圳网站的做网站公司,关键词爱站网关键词挖掘工具,bss123,wordpress权限控制异常处理 默认情况下,Sentinel 会抛出 BlockException 异常,如果希望自定义异常,则可以使用 SentinelResource 注解的 blockHandler 属性。 1、自定义异常处理 BlockExceptionHandler 自定义异常处理类实现 BlockExceptionHandler 接口&#…

异常处理

默认情况下,Sentinel 会抛出 BlockException 异常,如果希望自定义异常,则可以使用 @SentinelResource 注解的 blockHandler 属性。

1、自定义异常处理 BlockExceptionHandler

自定义异常处理类实现 BlockExceptionHandler 接口,并重写 handleException 方法,然后将其注册到 Spring 容器中。

基本概念:当 Sentinel 的规则(如流控规则、降级规则等)被触发时,会抛出 BlockException 异常。通过实现 BlockExceptionHandler 接口,可以自定义这些异常的处理逻辑

代码例子 🚀

@Component
public class CustomBlockExceptionHandler implements BlockExceptionHandler {@Overridepublic void handle(HttpServletRequest request, HttpServletResponse response, BlockException e) throws Exception {// 根据不同的规则类型返回不同的提示信息String msg = "请求被限流";int status = 429;if (e instanceof FlowException) {msg = "接口被限流了";status = 429;} else if (e instanceof DegradeException) {msg = "接口被降级了";status = 429;} else if (e instanceof ParamFlowException) {msg = "热点参数限流";status = 429;} else if (e instanceof AuthorityException) {msg = "授权规则不通过";status = 401;} else if (e instanceof SystemBlockException) {msg = "系统规则(负载/...)不满足要求";status = 429;}// 返回JSON格式的错误信息response.setContentType("application/json;charset=utf-8");response.setStatus(status);Map<String, Object> result = new HashMap<>();result.put("code", status);result.put("message", msg);result.put("timestamp", System.currentTimeMillis());response.getWriter().write(new ObjectMapper().writeValueAsString(result));}
}

2、自定义异常处理 blockHandler 

使用 @SentinelResource 注解的 blockHandler 属性,指定自定义的异常处理方法。🎁

基本概念:Sentinel 支持通过 @SentinelResource 注解定义资源并配置 blockHandler 和 fallback 函数来进行限流之后的处理。【兜底处理😎】

注意⚡⚡⚡:blockHandler 函数的参数列表需要和原方法一致,或者可以额外多一个 BlockException 参数用于接收异常。

代码例子 🚀

// 原本的业务方法.
@SentinelResource(blockHandler = "blockHandlerForGetUser")
public User getUserById(String id) {throw new RuntimeException("getUserById command failed");
}// blockHandler 函数,原方法调用被限流/降级/系统保护的时候调用
public User blockHandlerForGetUser(String id, BlockException ex) {return new User("admin");
}

3、特别注意🔕

BlockExceptionHandler 和 blockHandler 的关系:

注意🚓: 如果方法上使用了 @SentinelResource 并指定了 blockHandler,会优先使用该处理方法,而不会走到 BlockExceptionHandler。

http://www.dtcms.com/wzjs/217809.html

相关文章:

  • 网站播放功能难做吗百度客服平台
  • 穿搭速递html网页制作代码全网优化推广
  • 免费注册自助网站vi设计公司
  • b2c模式的网站qq刷赞网站推广
  • 做精美ppt的网站app网络推广方案
  • 深圳有做公司网站登录百度app
  • it运维工具西安seo服务培训
  • 江苏常州青之峰做网站深圳seo推广培训
  • 济南网站推广徽hyhyk1网络营销品牌策划
  • wordpress 图床 转移无锡网络优化推广公司
  • 自己做网站卖东西可以个人怎么注册自己的网站
  • 郴州建网站小红书搜索指数
  • 龙岗公司的网站制作今天的热点新闻
  • 北京网站制作昆明seo关键词
  • 怎样创造自己的网站长沙seo推广优化
  • 长沙网站制作公司有哪些网络营销网站设计
  • 什么网站做玩具的外贸百度官网登录
  • 北京市工程建设交易信息网站互联网搜索引擎有哪些
  • 建站公司 转型经验厦门seo外包服务
  • 家庭宽带做私人网站游戏推广公司好做吗
  • 个人如何制作微信小程序宁波网络推广优化公司
  • 软件开发工具免费吉林网站seo
  • 做外贸网站怎么访问外国网站广东免费网络推广软件
  • 事件营销怎么做seo培训一对一
  • 移动网站建设作业写一篇推广商品的软文
  • seo上海推广公司优化营商环境的金句
  • 天津低价做网站哪有恶意点击软件买的
  • 建设电商网站思想网络营销的内容有哪些方面
  • 做供应商在什么网站找可靠短链接
  • 做网站开源学校网站建设哪家好