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

淘宝网站建设不允许西安企业网站开发哪家好

淘宝网站建设不允许,西安企业网站开发哪家好,一个公司可以做两个网站吗,首页设计说明skywalking的相关概念我就不介绍了#xff0c;有兴趣可以参看官网文档 以下提供以下简单示例手工上报一些对问题排查比较有用的一些信息。当然这些内容你也可以写成探针插件的形式#xff0c;怎么开发探针插件也自行参考官方文档。此处仅在项目框架层面提供一些简单的示例有兴趣可以参看官网文档 以下提供以下简单示例手工上报一些对问题排查比较有用的一些信息。当然这些内容你也可以写成探针插件的形式怎么开发探针插件也自行参考官方文档。此处仅在项目框架层面提供一些简单的示例助于你快速入门。 手动上报异常信息 一般我们在项目中都会做全局异常拦截处理最早我的方案是在gateway统一拦截封装这样skywalking的agent组件就会不会到对应的异常信息进行上报到skywalkingserver端。但是接手了个没有gateway的微服务项目统一由nginx进行转发此时我们如果不将异常收敛在当前服务处理异常信息势必会被抛到前端页面显然是很不友好的行为。所以此时我们就得在当前服务内处理skywalking的异常信息上报。 正常我们的全局异常拦截处理类如下 RestControllerAdvice Order(Ordered.HIGHEST_PRECEDENCE) Slf4j public class GlobalExceptionHandler implements ExcetionHandler {ExceptionHandler(value Exception.class)public JsonResult unhandledException(HttpServletResponse resp, Exception e){log.error(未处理异常:, e);JsonResult result new JsonResult();result.setMessage(ErrorCode.UNCATCH_EXCEPTION.getMsg());result.setCode(ErrorCode.UNCATCH_EXCEPTION.getCode());return result;}}此时由于异常被收敛在这个类统一处理所以我们可以写个切面横切这个类的所有方法拿到异常信息手动上报给skywalking组件当然也可以写出插件的形式。不用在框架代码中手动上报。 切面代码如下 Aspect public class ExceptionHandlerAspect {Around(value annotation(org.springframework.web.bind.annotation.ExceptionHandler))public Object around(ProceedingJoinPoint joinPoint) throws Throwable {Object[] args joinPoint.getArgs();for (Object arg : args) {if (arg instanceof Throwable) {ActiveSpan.error((Throwable)arg);}}return joinPoint.proceed();} }是不是很简单。此处我们处理拦截异常之外我们还可以对sql进行拦截并将sql信息补全之后也统一上报给skywalking。这样出现业务问题时假如没有异常而是数据等问题我们很容易可以通过链路追踪到对应的sql信息除了sql我们还可以跟踪mq信息缓存信息等等都是一样的道理 手动上报sql信息 sql上报sql上报我们可以写个sql拦截器拦截statmentHander阶段或者拦截ParameterHandler阶段这两个阶段都是可以进行sql补全的。 ParameterHandler代码如下 Intercepts({Signature(type ParameterHandler.class, method setParameters, args {PreparedStatement.class}) } ) public class MybatisLogInterceptor implements Interceptor {Overridepublic Object intercept(Invocation invocation) throws Throwable {PreparedStatement statement (PreparedStatement) invocation.getArgs()[0];PreparedStatement sql null;Object proceed invocation.proceed();if (Proxy.isProxyClass(statement.getClass())) {InvocationHandler handler Proxy.getInvocationHandler(statement);if (handler.getClass().getName().endsWith(.PreparedStatementLogger)) {Field field handler.getClass().getDeclaredField(statement);field.setAccessible(true);sql (PreparedStatement) field.get(handler);}}ActiveSpan.tag(SpanConstant.ORM_TYPE, mybatis);ActiveSpan.tag(SpanConstant.SQL_STATEMENT, sql);return proceed;}Overridepublic Object plugin(Object target) {return Interceptor.super.plugin(target);}Overridepublic void setProperties(Properties properties) {Interceptor.super.setProperties(properties);} }StatmentHander代码如下 Intercepts(Signature(type StatementHandler.class,method parameterize,args Statement.class) ) public class MybatisTraceInterceptor implements Interceptor {private final static Logger log LoggerFactory.getLogger(MybatisTraceInterceptor.class);public static T T realTarget(Object target) {if (Proxy.isProxyClass(target.getClass())) {MetaObject metaObject SystemMetaObject.forObject(target);return realTarget(metaObject.getValue(h));}return (T) target;}Overridepublic Object intercept(Invocation invocation) throws Throwable {Object proceed null;String sqlnull;Statement statement (Statement) invocation.getArgs()[0];proceed invocation.proceed();try {PreparedStatementLogger psl realTarget(statement);PreparedStatement ps psl.getPreparedStatement();String pss ps.toString();sql pss.substring(pss.indexOf(:) 1);ActiveSpan.tag(SpanConstant.ORM_TYPE, mybatis);ActiveSpan.tag(SpanConstant.SQL_STATEMENT, sql);}catch (Exception e){log.error(sql上报skyWalking异常,e.getMessage());}return proceed;}Overridepublic Object plugin(Object target) {return Plugin.wrap(target, this);}Overridepublic void setProperties(Properties properties) {} }手动上报出入参信息 这里同样有两种方案一个使用切面的方式进行处理一个使用Filter或者拦截器的方式进行处理但是后两个阶段存在一个问题就是流的读取问题所以如果选择后两者进行操作还需要进行流的缓存封装是比较不可取的方案。代码都差不多这个我就不贴了。 注意 过滤器和拦截器一般我们用来处理头部信息会比较好点。
http://www.hkea.cn/news/14490758/

相关文章:

  • 南宁旅游网站建设wordpress远程附件
  • 网站管理的内容包括怎样才能建立网站
  • 做网站对服务器什么要求高asp企业网站源码下载
  • html5网站代理建网站的服务器
  • 宁海县城镇建设局网站wordpress 简洁文章主题
  • 网站运营推广难做吗网络推广软件哪个好
  • 在哪个网站做流动补胎的广告好建立企业网站方案
  • 古典风格中药医药企业网站模板源码flash个人网站动画
  • 广州购物网站开发php网站开发技巧
  • 电子商务网站建设过程报告导购网站如何做免费推广
  • 给个网站可以在线wordpress导航主题模板
  • win10 做网站服务器潜江资讯网官网
  • 网站建设 计入哪个科目wordpress开头
  • 蚌埠 网站制作济南建设档案大厦
  • 东莞网站建设曼哈顿信科wordpress页面文本编辑评论
  • 四川seo整站优化费用分类信息网
  • 小型企业类网站开发公司建设网站多少钱 2017
  • 手机网站 制作深圳 购物商城网站建设
  • 通州青岛网站建设知名网站建设制作
  • 网站建设招代理平台设计公司
  • 不合理的网站网站开发基本要求
  • 按颜色分类的网页设计欣赏网站wordpress 主题语言
  • html5 php网站源码下载上传文件后网站建设中
  • 中企动力 网站模板做360网站中保存的图片存在哪里的
  • 保山市住房和城乡建设局门户网站wordpress cpu占用高
  • 可以做内容的网站网站后台灰色
  • php 判断 $_get 然后跳转到相印的网站php网站开发软件是什么
  • 校园网站建设素材松原建设工程交易中心网站
  • 深圳网站建设专家域名访问网站怎么下载
  • 珠海网站建设那家好一个商务宣传怎么做网站合适