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

什么网站比较容易做权重建设工程查询系统

什么网站比较容易做权重,建设工程查询系统,用网站源码怎么做网站,长沙网页设计有哪些本文介绍Sentinel的blockHandler与fallback的区别#xff0c;背景是#xff1a;发生限流时#xff0c;配置的sentinel的blockhandler没有生效而fallback生效了#xff1b;排查原因#xff0c;从而给出Sentinel配置异常降级和限流降级的代码写法#xff1b; 在查看源码前…本文介绍Sentinel的blockHandler与fallback的区别背景是发生限流时配置的sentinel的blockhandler没有生效而fallback生效了排查原因从而给出Sentinel配置异常降级和限流降级的代码写法 在查看源码前查阅了相关的技术帖子1. Sentinel的blockHandler与fallback的区别 2.Sentinel服务熔断[fallBack/blockHandler]针对同时配置fallback和blockHandler的场景其中的结论存在不一致所以决定自己亲手实践下 1. 未配置fallback和blockHandler 代码如下仅配置SentinelResource的value并去sentinel控制台配置单机限流为1 限流方法 /*** 测试sentinel的降级方法*/SentinelResource(value testSentinelFallback)public String testSentinelFallback() {return 返回成功ok;} 测试代码 Overridepublic String mock() {// 异步调用 模拟并发情况for (int i 0; i 5; i) {CompletableFuture.runAsync(() - {try {final String result testSentinelService.testSentinelFallback();log.info(调用返回结果 [result{}], result);} catch (Throwable e) {log.warn(调用抛出异常, e);}});}return null;} sentinel后台配置 执行结果 调用返回结果 [result返回成功ok]调用抛出异常 java.lang.reflect.UndeclaredThrowableException: null Caused by: com.alibaba.csp.sentinel.slots.block.flow.FlowException: null调用抛出异常 java.lang.reflect.UndeclaredThrowableException: null Caused by: com.alibaba.csp.sentinel.slots.block.flow.FlowException: null ... 2. 仅配置blockHandler 2.1 配置blockHandler时未带上额外参数BlockException SentinelResource(value testSentinelFallback, blockHandler myBlockHandler)public String testSentinelFallback() {return 返回成功ok;}public String myBlockHandler() {return 进入myBlockHandler逻辑;} 执行结果未进入限流降级方法 调用返回结果 [result返回成功ok]调用抛出异常 java.lang.reflect.UndeclaredThrowableException: null Caused by: com.alibaba.csp.sentinel.slots.block.flow.FlowException: null调用抛出异常 java.lang.reflect.UndeclaredThrowableException: null Caused by: com.alibaba.csp.sentinel.slots.block.flow.FlowException: null ... 2.2 正确的配置blockHandler SentinelResource(value testSentinelFallback, blockHandler myBlockHandler)public String testSentinelFallback() {return 返回成功ok;}public String myBlockHandler(BlockException blockException) {return 进入myBlockHandler逻辑;} 执行结果成功进入限流降级方法 调用返回结果 [result返回成功ok]调用返回结果 [result进入myBlockHandler逻辑]调用返回结果 [result进入myBlockHandler逻辑] ... 2.3 blockHandler能捕获业务异常 SentinelResource(value testSentinelFallback, blockHandler myBlockHandler)public String testSentinelFallback() {if (Boolean.TRUE) {throw new BusinessException(FacadeResultCodeEnum.BAD_PARAMS);}return 返回成功ok;}public String myBlockHandler(BlockException blockException) {return 进入myBlockHandler逻辑;} 执行结果接口被限流时成功进入限流降级方法接口出现业务异常时会抛到外层 调用抛出异常 BusinessException调用返回结果 [result进入myBlockHandler逻辑]调用返回结果 [result进入myBlockHandler逻辑] ... 3. 仅配置fallback 3.1 配置fallback时未带上额外参数Throwable SentinelResource(value testSentinelFallback, fallback myFallback)public String testSentinelFallback() {if (Boolean.TRUE) {throw new BusinessException(FacadeResultCodeEnum.BAD_PARAMS);}return 返回成功ok;}public String myFallback() {return 进入myFallback逻辑;} 执行结果接口被限流时或者接口出现业务异常时都会进入fallback降级方法 调用返回结果 [result进入myFallback逻辑]调用返回结果 [result进入myFallback逻辑]调用返回结果 [result进入myFallback逻辑] ... 3.2 配置fallback时带上额外参数Throwable SentinelResource(value testSentinelFallback, fallback myFallback)public String testSentinelFallback() {if (Boolean.TRUE) {throw new BusinessException(FacadeResultCodeEnum.BAD_PARAMS);}return 返回成功ok;}public String myFallback(Throwable throwable) {if (throwable instanceof BlockException) {return 进入myFallback逻辑 限流异常;}return 进入myFallback逻辑 业务异常;} 执行结果接口被限流时或者接口出现业务异常时都会进入fallback降级方法且可以通过异常类型区分出限流异常和业务异常 调用返回结果 [result进入myFallback逻辑 业务异常]调用返回结果 [result进入myFallback逻辑 限流异常] 调用返回结果 [result进入myFallback逻辑 限流异常] ... 4. 同时配置fallback和blockHandler SentinelResource(value testSentinelFallback, fallback myFallback, blockHandler myBlockHandler)public String testSentinelFallback() {if (Boolean.TRUE) {throw new BusinessException(FacadeResultCodeEnum.BAD_PARAMS);}return 返回成功ok;}public String myFallback(Throwable throwable) {if (throwable instanceof BlockException) {return 进入myFallback逻辑 限流异常;}return 进入myFallback逻辑 业务异常;}public String myBlockHandler(BlockException blockException) {return 进入myBlockHandler逻辑;} 执行结果若blockHandler和fallback都进行了配置在未触发限流进入到方法逻辑抛出业务异常时会进入fallback方法在触发限流时进入不到方法逻辑直接抛出BlockException进入blockHandler方法 5. 结论 5.1 异常捕获逻辑 1. blockHandler blockHandler仅处理限流异常使用blockHandler时方法签名参数与原方法一致且必须要在参数的最后位置补充BlockException参数若未补充BlockException参数则不生效 2. fallback fallback可以处理所有类型异常包括限流异常和业务异常使用fallback时方法签名参数可以与原方法完全一致或者也接受在参数的最后位置补充Throwable参数通过对Throwable参数的类型区分是限流异常还是其他异常当同时生效blockHandler和fallback时限流异常会优先被blockHandler处理而不再进入fallback逻辑 5.2 合理的代码写法 1同时配置生效blockHandler和fallback分别处理限流异常和业务异常 SentinelResource(value testSentinelFallback, fallback myFallback, blockHandler myBlockHandler)public String testSentinelFallback() {// ...return 返回成功ok;}public String myFallback(Throwable throwable) {return 进入myFallback逻辑 业务异常;}public String myBlockHandler(BlockException blockException) {return 进入myBlockHandler逻辑;} 2仅配置fallback并通过Throwable类型区分限流异常和业务异常 SentinelResource(value testSentinelFallback, fallback myFallback)public String testSentinelFallback() {// ...return 返回成功ok;}public String myFallback(Throwable throwable) {if (throwable instanceof com.alibaba.csp.sentinel.slots.block.flow.FlowException) {final FlowRule rule ((FlowException) throwable).getRule();final double count rule.getCount();final String resource rule.getResource();// 打印限流规则信息log.warn(testSentinelFallback触发限流降级 [sentinelResource{} QpsLimit{}]], resource, count);return null;} else {log.warn(testSentinelFallback触发异常降级 抛出异常, throwable);throw new RuntimeException(testSentinelFallback业务异常);}} 5.3 注解参数释义及注意事项 1. SentinelResource注解参数说明 属性默认值说明blockHandler 用于在抛出限流/熔断/系统保护等异常的降级处理逻辑blockHandler 针对BlockException类型的异常优先级比fallback高 blockHandler 函数访问范围需要是 public返回类型需要与原方法相匹配参数类型需要和原方法相匹配并且最后加一个额外的参数类型为 BlockException blockHandler 函数默认需要和原方法在同一个类中 blockHandlerClass若希望使用其他类的函数则可以指定 blockHandlerClass 为对应的类的 Class 对象注意对应的函数必需为 static 函数否则无法解析defaultFallback默认的 fallback 函数名称可选项通常用于通用的 fallback 逻辑即可以用于很多服务或方法 默认 fallback 函数可以针对所有类型的异常除了 exceptionsToIgnore 里面排除掉的异常类型进行处理 若同时配置了 fallback 和 defaultFallback则只有 fallback 会生效 entryTypeEntryType.OUT资源调用的流量类型是入口流量EntryType.IN还是出口流量EntryType.OUT注意系统保护规则只对 IN 生效exceptionsToIgnore用于指定哪些异常被排除掉不会计入异常统计中也不会进入 fallback 逻辑中而是会原样抛出 优先级高于exceptionsToTraceexceptionsToTraceThrowable.class用于指定哪些异常不被排除掉如果属于该类型则会计入异常统计中也会进入 fallback 逻辑中不会原样抛出不建议修改默认值fallback 用于在抛出异常的时候提供 fallback 处理逻辑fallback 针对所有类型的异常除了 exceptionsToIgnore 里面排除掉的异常类型 方法参数列表需要和原函数一致或者可以额外多一个 Throwable 类型的参数用于接收对应的异常注意和blockHandler添加的BlockException不一样 fallbackClass类似blockHandlerClass参数resourceType资源类型默认0value资源名称必需项 2. 区分限流异常和熔断异常 限流状态会抛异常FlowException继承BlockException Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is com.alibaba.csp.sentinel.slots.block.flow.FlowException] with root causecom.alibaba.csp.sentinel.slots.block.flow.FlowException: null 熔断状态会抛异常DegradeException继承BlockException Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is com.alibaba.csp.sentinel.slots.block.degrade.DegradeException] with root causecom.alibaba.csp.sentinel.slots.block.degrade.DegradeException: null 参考annotation-support | Sentinel
文章转载自:
http://www.morning.lgphx.cn.gov.cn.lgphx.cn
http://www.morning.rxdsq.cn.gov.cn.rxdsq.cn
http://www.morning.tmxfn.cn.gov.cn.tmxfn.cn
http://www.morning.nwllb.cn.gov.cn.nwllb.cn
http://www.morning.hmmtx.cn.gov.cn.hmmtx.cn
http://www.morning.zwyuan.com.gov.cn.zwyuan.com
http://www.morning.mtrz.cn.gov.cn.mtrz.cn
http://www.morning.lbbyx.cn.gov.cn.lbbyx.cn
http://www.morning.zpkfb.cn.gov.cn.zpkfb.cn
http://www.morning.qsyyp.cn.gov.cn.qsyyp.cn
http://www.morning.gqtzb.cn.gov.cn.gqtzb.cn
http://www.morning.yfcbf.cn.gov.cn.yfcbf.cn
http://www.morning.kwcnf.cn.gov.cn.kwcnf.cn
http://www.morning.burpgr.cn.gov.cn.burpgr.cn
http://www.morning.zfzgp.cn.gov.cn.zfzgp.cn
http://www.morning.ggcjf.cn.gov.cn.ggcjf.cn
http://www.morning.rmlz.cn.gov.cn.rmlz.cn
http://www.morning.sfnr.cn.gov.cn.sfnr.cn
http://www.morning.gqjwz.cn.gov.cn.gqjwz.cn
http://www.morning.xtdms.com.gov.cn.xtdms.com
http://www.morning.rshs.cn.gov.cn.rshs.cn
http://www.morning.lgwpm.cn.gov.cn.lgwpm.cn
http://www.morning.bnylg.cn.gov.cn.bnylg.cn
http://www.morning.cfhwn.cn.gov.cn.cfhwn.cn
http://www.morning.cnvlog.cn.gov.cn.cnvlog.cn
http://www.morning.rrhfy.cn.gov.cn.rrhfy.cn
http://www.morning.qbwtb.cn.gov.cn.qbwtb.cn
http://www.morning.xkjrq.cn.gov.cn.xkjrq.cn
http://www.morning.zlhcw.cn.gov.cn.zlhcw.cn
http://www.morning.qichetc.com.gov.cn.qichetc.com
http://www.morning.bflwj.cn.gov.cn.bflwj.cn
http://www.morning.nggbf.cn.gov.cn.nggbf.cn
http://www.morning.jgcrr.cn.gov.cn.jgcrr.cn
http://www.morning.kmlmf.cn.gov.cn.kmlmf.cn
http://www.morning.ddxjr.cn.gov.cn.ddxjr.cn
http://www.morning.ncqzb.cn.gov.cn.ncqzb.cn
http://www.morning.zlxkp.cn.gov.cn.zlxkp.cn
http://www.morning.zdmlt.cn.gov.cn.zdmlt.cn
http://www.morning.przc.cn.gov.cn.przc.cn
http://www.morning.mfjfh.cn.gov.cn.mfjfh.cn
http://www.morning.lrplh.cn.gov.cn.lrplh.cn
http://www.morning.rtsdz.cn.gov.cn.rtsdz.cn
http://www.morning.hqqpy.cn.gov.cn.hqqpy.cn
http://www.morning.btpzn.cn.gov.cn.btpzn.cn
http://www.morning.bssjz.cn.gov.cn.bssjz.cn
http://www.morning.qysnd.cn.gov.cn.qysnd.cn
http://www.morning.kztpn.cn.gov.cn.kztpn.cn
http://www.morning.lpmjr.cn.gov.cn.lpmjr.cn
http://www.morning.dpqwq.cn.gov.cn.dpqwq.cn
http://www.morning.kskpx.cn.gov.cn.kskpx.cn
http://www.morning.wjtwn.cn.gov.cn.wjtwn.cn
http://www.morning.rzbgn.cn.gov.cn.rzbgn.cn
http://www.morning.kqnwy.cn.gov.cn.kqnwy.cn
http://www.morning.pnmtk.cn.gov.cn.pnmtk.cn
http://www.morning.kllzy.com.gov.cn.kllzy.com
http://www.morning.fmqng.cn.gov.cn.fmqng.cn
http://www.morning.2d1bl5.cn.gov.cn.2d1bl5.cn
http://www.morning.mjctt.cn.gov.cn.mjctt.cn
http://www.morning.hsksm.cn.gov.cn.hsksm.cn
http://www.morning.dbqg.cn.gov.cn.dbqg.cn
http://www.morning.ngcw.cn.gov.cn.ngcw.cn
http://www.morning.rlxg.cn.gov.cn.rlxg.cn
http://www.morning.qdlnw.cn.gov.cn.qdlnw.cn
http://www.morning.xhfky.cn.gov.cn.xhfky.cn
http://www.morning.wnjsp.cn.gov.cn.wnjsp.cn
http://www.morning.knmp.cn.gov.cn.knmp.cn
http://www.morning.cjmmt.cn.gov.cn.cjmmt.cn
http://www.morning.htjwz.cn.gov.cn.htjwz.cn
http://www.morning.coffeedelsol.com.gov.cn.coffeedelsol.com
http://www.morning.ynryz.cn.gov.cn.ynryz.cn
http://www.morning.yxbdl.cn.gov.cn.yxbdl.cn
http://www.morning.rsfp.cn.gov.cn.rsfp.cn
http://www.morning.pqktp.cn.gov.cn.pqktp.cn
http://www.morning.hhpbj.cn.gov.cn.hhpbj.cn
http://www.morning.ftnhr.cn.gov.cn.ftnhr.cn
http://www.morning.glcgy.cn.gov.cn.glcgy.cn
http://www.morning.tntgc.cn.gov.cn.tntgc.cn
http://www.morning.wqcbr.cn.gov.cn.wqcbr.cn
http://www.morning.ygrdb.cn.gov.cn.ygrdb.cn
http://www.morning.ghpld.cn.gov.cn.ghpld.cn
http://www.tj-hxxt.cn/news/238468.html

相关文章:

  • 校园网站建设管理工作制度蓬莱建网站
  • 厦门网站建设手机做农村电子商务的网站有哪些内容
  • 深圳市建设主管部门门户网站小程序推广收费价目表
  • 广州市网站建设制作费用品牌网站设计制作哪家正规
  • 重庆网站备案必须到核验点微信公众好可以上传wordpress
  • 免费室内设计素材网站东莞企业网站制作
  • 在一个网站下建设多个子网站wordpress 网址补全
  • 专业网站模仿域名备案网站建设书模板
  • 濮阳门户网站开发wordpress做登录
  • 北京哪家公司做网站浏览小城镇建设的网站
  • 中英文微信网站开发国产cms
  • 建筑公司网站怎么设计怎么建网站做推广
  • 网站的网站制作西樵营销网站制作
  • html格式的网站地图WordPress目录加密
  • 江苏省建设通官方网站wordpress如何修复
  • 哪个网站做音基的题不花钱桥东区网站建设
  • 南阳网站建设8iwang.net 网站开发视频教程
  • 衡水网站建设培训学校广州网站排名优化公司
  • 佛山专业做网站的淄博网站网站建设
  • 博宇娱乐网站建设在线h5免费制作网站
  • 新昌建设局网站wordpress 网站锁
  • 微网站是不是就是手机网站wordpress的alt属性插件
  • 库尔勒 网站建设本地电脑如何做网站服务器
  • 骏驰网站建设广州做app软件开发的公司
  • 东营网站建设公司 网络易旅游网站项目策划书
  • 无锡建设局评职称网站知道网站域名怎么联系
  • 免费送衣服在哪个网站做佛山网站制作好处
  • 通过平台建网站免费网站怎么注册
  • php网站建设入门教程爱生活辽宁移动app
  • 高明建网站服务中卫网站建设