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

昭通市住房和城乡建设局网站金桥网站建设

昭通市住房和城乡建设局网站,金桥网站建设,网站美观界面,wordpress首页多样式文章目录 一、介绍二、演示项目介绍1. 支付服务2. 订单服务 三、项目演示1. 未忽略异常2. 忽略异常修改配置使用注解 四、结论 往期内容 一、skywalking安装教程 二、skywalking全链路追踪 三、skywalking日志收集 一、介绍 在前面介绍在微服务项目中使用skywalking进行全链… 文章目录 一、介绍二、演示项目介绍1. 支付服务2. 订单服务 三、项目演示1. 未忽略异常2. 忽略异常修改配置使用注解 四、结论 往期内容 一、skywalking安装教程 二、skywalking全链路追踪 三、skywalking日志收集 一、介绍 在前面介绍在微服务项目中使用skywalking进行全链路追踪时我们发现当一次请求链路中某个服务出现异常时在skywalking中会将该链路用红色标记为ERROR在异常链路详情中也可以看出是哪个服务出现了异常并可以查看响应的异常信息。如下图所示。 那么有没有办法忽略某个指定的异常呢就是说如果一个请求链路中某个服务抛出了该异常skywalking仍然认为该异常属于正常现象并不会认为它是ERROR。 答案是肯定的。我们往下看。 二、演示项目介绍 项目结构依然参考skywalking安装教程中的演示项目业务流程就是商品服务暴露接口给客户端当客户端调用商品服务接口时商品服务调用订单服务订单服务调用支付服务形成一个包含三个服务的调用链。如下图所示。 1. 支付服务 现在我们定义两个异常SixException 和 SevenException其中SixException 继承 SevenException SevenException继承RuntimeException也就是说我们自定义的两个异常都是运行时异常。结构如下。 当接口接收的参数goodsId为6的倍数时抛出SixException当参数goodsId为7的倍数时则抛出SevenException。如下所示 SevenException Slf4j public class SixException extends SevenException{public SixException(String message) {super(message);} }SixException Slf4j public class SevenException extends RuntimeException{public SevenException(String message) {super(message);} }修改接口 GetMapping(/pay) public Integer pay(RequestParam(goodsId) Integer goodsId) {log.info(支付服务feign接口服务端口号{}, port);log.info(商品id{}, goodsId);if (goodsId % 6 0) {log.error(商品id不允许为6的倍数);throw new SixException(商品id不允许为6的倍数);}if (goodsId % 7 0) {log.error(商品id不允许为7的倍数);throw new SevenException(商品id不允许为7的倍数);}return 0; }添加全局异常处理器 我们将抛出SevenException这个异常的情况定义为正常情况当接口抛出SevenException时通过全局异常处理器捕获该异常然后将接口响应设置为失败即可。 RestControllerAdvice public class GlobalExceptionHandlers {ExceptionHandler(SixException.class)public Integer sixException(SixException e) {return 1;}ExceptionHandler(SevenException.class)public Integer sevenException(SevenException e) {return 1;} }2. 订单服务 在原本的订单服务的接口中有个判断条件为如果商品id为2的倍数则返回。该条件影响我们支付服务中对SixException的测试所以该判断条件删除如下所示 三、项目演示 下面我们按部就班启动微服务项目和skywalking服务并调用商品服务接口分别传入商品id为6和7的参数。 商品id为6 请求如图 日志如图 商品id为7 请求如图 日志如图 1. 未忽略异常 在未忽略异常的情况下skywalking将出现异常的链路以及出现异常的服务均使用红色标记为ERROR。 请求参数商品id分别为6和7的调用链路如下 商品id为6的请求链路 商品id为7的请求链路 2. 忽略异常 有时候抛出异常是控制代码运行的重要方式因此我们需要对这类异常进行忽略。skywalking提供了两种方式修改配置、使用注解。 修改配置 在agent.config配置文件中找到statuscheck.ignored_exceptions对其进行配置当然了配置方式有多种修改配置文件、jvm启动参数、javaagent选项、操作系统环境变量这四种配置方式我们在skywalking安装教程中已经详细介绍过了。这里以修改jvm启动参数为例当需要忽略多个异常时使用逗号“,”分隔。如下所示。 修改完成后重新启动支付服务然后再分别调用商品id为6和商品id为7两个请求得到的调用链路如下 商品id为6的请求链路 商品id为7的请求链路 从截图可以发现当我们在某个服务中忽略指定的异常时skywalking会将出现该异常的服务标记为成功。而且我们忽略的异常明明是SevenException但是当出现SixException时skywalking也会对其进行忽略。 所以得出结论当忽略一个指定的父异常时skywalking会忽略该父异常和它的子异常。 使用注解 skywalking也提供了通过注解的方式来指定一个忽略的异常。 添加依赖 dependencygroupIdorg.apache.skywalking/groupIdartifactIdapm-toolkit-trace/artifactIdversion8.9.0/version /dependency在要忽略的异常上添加注解IgnoredException等同于添加配置statuscheck.ignored_exceptions。 IgnoredException public class SevenException extends RuntimeException{public SevenException(String message) {super(message);} }四、结论 通过给微服务添加statuscheck.ignored_exceptions异常类的限定路径实现在调用链路中忽略指定异常。通过注解IgnoredException指定要忽略的异常但需要添加依赖apm-toolkit-trace。当忽略一个指定的父异常时skywalking会忽略该父异常和它的子异常。 纸上得来终觉浅绝知此事要躬行。 ————————我是万万岁我们下期再见————————
http://www.hkea.cn/news/14504311/

相关文章:

  • 外国好的设计网站大全百度搜不到的网站
  • 做法城乡建设部网站推广神器
  • 电影片头在线制作网站手机排行榜zol
  • 厦门市建设工程安全质量协会网站高德地图能不能看国外
  • 网站域名地址是什么公司网页设计作品
  • 无锡网站建设价格立水桥网站建设
  • 做网站一个月赚多少钱wordpress rss 添加
  • 江西省注册和城乡建设厅网站珠海手机网站
  • 聊城做网站推广公司linux网站环境
  • 网站内的新闻怎样做链接开发微信公众
  • 湖南企业网站制作公司亳州网站建设费用
  • 宝塔建站网址北京seo关键词优化外包
  • 呼和浩特企业网站建设企业展厅设计公司豆河镇展厅设计公司笔中展览
  • 网站空间买什么的好在服务器网站上做跳转页面跳转页面
  • 网站开发赚钱吗 知乎wordpress pitch
  • 网站360优化备案的网站 能拿来做仿站吗
  • 沭阳做网站好的职业培训机构资质
  • 温州网站建设wzwmwl网站欣赏与创建网页
  • 网站开发的话术有没有免费的商城小程序
  • 山西网站建设找哪家wordpress会自动更新
  • 什么是网站开发公司怎样做网站搜索推广电话成都
  • 深圳企业建站设计公司微信小程序开发流程图
  • django可以做多大的网站哪家公司的网站做得好
  • 南京网站建设哪家专业wordpress添加商城
  • 青岛建站百度入口网址
  • 济南seo网站关键词排名wordpress分类别名获取文章
  • pc网站优势新东方在线网上课程
  • 优质网站建设价格舟山建站
  • 电商网站对比表格全球访问量top100网站
  • 河北省城乡规划建设局官方网站家禽养殖公司网站怎么做