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

临沂网站建设平台古风网站怎么做

临沂网站建设平台,古风网站怎么做,设计公司网站图,网站推广怎么做比较好背景: 随着业务的复杂化、解耦化,运维人员和开发人员需要对请求链路跟踪来快速发现和定位问题,基于应用已经集成了SkyWalking的前提下,如何通过获取SkyWalking生成的统一traceId并加入打印日志中,方便开发人员能够根据…

背景:

随着业务的复杂化、解耦化,运维人员和开发人员需要对请求链路跟踪来快速发现和定位问题,基于应用已经集成了SkyWalking的前提下,如何通过获取SkyWalking生成的统一traceId并加入打印日志中,方便开发人员能够根据链路ID快速搜索单个请求的全链路日志呢?

基本思路:

trace-id的生成:

结合apm-toolkit-trace提供的工具类获取请求的trace-id,前提是应用已经集成对接了SkyWalking

trace-id的存放:

一种轻量级的实现,通过  MDC 机制,将请求的 trace-id 放入到MDC中,在日志打印时,通过 MDC 中的 trace-id 将同一个请求的每一条日志串联起来。因为 MDC 是线程隔离且安全的。

trace-id的打印:

通过修改logback.xml配置中pattern增加输出参数%X{traceId}来控制。

trace-id存放的触发机制:

通常实现方式,采用增加日志拦截器的做法,将拦截服务所有外部请求,在请求前置处理中将生成trace-id并保存入MDC中。

代码示例:

通用做法-开发三板斧:依赖、配置、注解与编码

依赖 

<!-- skywalking依赖包 打印traceid -->
<dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-trace</artifactId><version>8.7.0</version>
</dependency>

配置

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="true" scanPeriod="1 seconds"><jmxConfigurator/><contextName>logback</contextName><springProperty scope="context" name="module_name" source="spring.application.name"/><!-- 读取apollo配置中心设置的变量 --><springProperty scope="context" name="version" source="app.version"/><springProperty scope="context" name="env" source="app.env"/><timestamp key="log_date" datePattern="yyyy-MM-dd"/><!--自定义输出 --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} - thead=%thread - level=%-5level - class=%logger{20} - token=%X{token} - traceId=%X{traceId} - content=%msg%n</pattern></encoder></appender><!-- 日志输出级别 --><root level="debug"><appender-ref ref="STDOUT"/></root></configuration>

编码

(1) 自定义拦截器LoggerInterceptor

package com.zzia.demo.interceptor;import org.slf4j.MDC;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.skywalking.apm.toolkit.trace.TraceContext;@Component
public class LoggerInterceptor implements HandlerInterceptor {/*** @return 返回 true 放行、放回 false 拦截*/@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println("进入拦截器,前置通知" + request.getRequestURI());// 过滤掉确认的 options 请求if ("OPTIONS".equals(request.getMethod())) {return true;}// 单链路上下文信息存入MDC// 请求凭证String token = request.getHeader("__ub_token");MDC.put("token", token);//每次请求生成唯一的请求标识,作为内部链路的日志追踪标识MDC.put("traceId", TraceContext.traceId());// 业务身份字段可扩展加入String userId = "123456";MDC.put("userId", userId);if (token != null) {return true;}return false;}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println("后置通知");}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println("最终通知");MDC.clear();}
}

(2) 注册拦截器

package com.zzia.demo.interceptor;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration
public class MyLoggerConfigurer implements WebMvcConfigurer {@AutowiredLoggerInterceptor myInterceptor;@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(myInterceptor)    // 添加自定义拦截器.excludePathPatterns("/index") // 设置放行路径.addPathPatterns("/**");       // 设置拦截路径}
}

演示效果:

说明:本示例的前置准备参见文章Spring boot 集成Skywalking_幽幽之心的博客-CSDN博客 

http://www.yayakq.cn/news/148839/

相关文章:

  • 想做找人做网站青海网站建设公司哪家好
  • 营销型网站建设申请域名时公司类型的域名后缀一般是?wordpress lover主题
  • 网站建设与维护理解怎么在网站上做网页
  • 南京网站设计制作排名温州哪里做网站比较好
  • 网站登录按钮点击没反应什么原因各位给推荐个网站
  • 织梦个人网站模版工作室网站建设方案模板
  • 怎样做原创短视频网站新手学做网站优化
  • 广州市品牌网站建设怎么样推广普通话手抄报模板
  • 网站建设价值跨境电商主要平台有哪些
  • 做网站设计的都转行干啥了南京定制网站建设
  • 成都网站设计与制作长治市郊区住房建设局网站
  • 中山蓝图科技网站建设个人旅游网站模板
  • 大学网站建设图wordpress 置顶文章
  • 河南手机网站建设多少钱钢丝网片
  • 网站后台管理系统制作软件百度网盟广告
  • 手机 网站开发软件微博营销成功案例8个
  • wordpress模板商业来宾网站优化
  • 简单的网站开发流程图建设农产品网站总结ppt
  • 昆明网站建设设计宣传片拍摄协议
  • 流量最大的网站seo网站查询
  • 使用mvs2010做网站网络营销策划方案的结构
  • 做网站都要用到框架吗电商小程序报价
  • 云南省建设厅网站首页做详情页到那个网站找模特素材
  • 让蜘蛛不抓取网站的文件夹黄陂网站建设
  • 开发直播平台网站wordpress更改了数据库密码错误
  • 搭配网站开发的开题报告建各企业网站多少钱
  • 大学生建设什么网站好网站建设服务器可以租吗
  • 网站建设开发报价单昆明企业网站设计公司
  • 网站开发需要做什么免费引流推广的方法
  • 网站建设维护成WordPress幻灯片首页