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

胶州网站搭建公司360搜索关键词优化软件

胶州网站搭建公司,360搜索关键词优化软件,wordpress反屏蔽广告,pc网站制作公司ELK怎么实现跨服务日志追踪,Trace-Id 具体实现方案及代码_kibana关联其他服务器的日志-CSDN博客 ELKMDC追踪日志 ---- SpringCloud实现传递_elk的mdc-CSDN博客 SpringBoot之HandlerInterceptor拦截器的使用 ——(一)-CSDN博客 在使用ELK&a…

ELK怎么实现跨服务日志追踪,Trace-Id 具体实现方案及代码_kibana关联其他服务器的日志-CSDN博客

ELK+MDC追踪日志 ---- SpringCloud实现传递_elk的mdc-CSDN博客 

SpringBoot之HandlerInterceptor拦截器的使用 ——(一)-CSDN博客

 

在使用ELK(Elasticsearch, Logstash, Kibana)进行日志管理时,通过traceId实现日志跟踪是一种常见的做法。traceId可以帮助我们在分布式系统中追踪请求的完整链路。通过Spring的HandlerInterceptor,我们可以在请求进入时生成traceId,并将其传递到日志中。

实现思路

  1. 生成traceId:在请求进入时生成一个唯一的traceId,并将其存储在MDC(Mapped Diagnostic Context)中。

  2. 传递traceId:在请求处理过程中,确保traceId能够传递到各个组件和日志中。

  3. 清理traceId:在请求处理完成后,清理MDC中的traceId,避免内存泄漏。

代码实现

1. 创建TraceIdInterceptor

首先,我们需要创建一个HandlerInterceptor实现类,用于在请求进入时生成traceId,并在请求完成后清理traceId

java

复制

import org.slf4j.MDC;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.UUID;@Component
public class TraceIdInterceptor implements HandlerInterceptor {private static final String TRACE_ID = "traceId";@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {// 生成唯一的traceIdString traceId = UUID.randomUUID().toString();// 将traceId放入MDCMDC.put(TRACE_ID, traceId);return true;}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {// 请求完成后清理MDC中的traceIdMDC.remove(TRACE_ID);}
}
2. 注册TraceIdInterceptor

接下来,我们需要将TraceIdInterceptor注册到Spring的拦截器链中。

java

复制

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 WebConfig implements WebMvcConfigurer {@Autowiredprivate TraceIdInterceptor traceIdInterceptor;@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(traceIdInterceptor);}
}
3. 配置日志输出traceId

在日志配置文件中,配置日志输出格式,确保traceId能够被打印出来。以logback.xml为例:

xml

复制

<configuration><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - [%X{traceId}] %msg%n</pattern></encoder></appender><root level="info"><appender-ref ref="STDOUT" /></root>
</configuration>

运行 HTML

在这个配置中,%X{traceId}会从MDC中获取traceId并输出到日志中。

4. 在代码中使用traceId

在业务代码中,你可以通过MDC获取traceId,并将其传递到其他服务或日志中。

java

复制

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.MDC;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class MyController {private static final Logger logger = LoggerFactory.getLogger(MyController.class);@GetMapping("/test")public String test() {// 获取traceIdString traceId = MDC.get("traceId");logger.info("Processing request with traceId: {}", traceId);return "Hello, World!";}
}

总结

通过上述步骤,我们实现了一个简单的traceId日志跟踪系统。HandlerInterceptor在请求进入时生成traceId并将其放入MDC,在请求完成后清理MDC。日志配置确保traceId能够被输出到日志中,从而方便我们在ELK中追踪请求的完整链路。

扩展

  • 分布式系统中的traceId传递:在微服务架构中,traceId需要在服务之间传递。可以通过HTTP头、消息队列等方式传递traceId

  • 异步任务中的traceId:在异步任务中,traceId可能会丢失。可以通过自定义线程池或使用TaskDecorator来确保traceId在异步任务中传递。

通过这些扩展,你可以在更复杂的系统中实现全链路的日志跟踪。

 

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

相关文章:

  • 自己黑自己做的网站优化关键词排名公司
  • 网站做优化得话从哪里优化株洲今日头条新闻
  • 浅析淘宝网站的建设与运营论文百度seo服务公司
  • 宁德营销型网站建设营销软件商城
  • 泰安房价各小区排行表seo关键词优化案例
  • 深圳网站建站建设百度竞价是什么工作
  • 建网站公司是如何赚钱找片子有什么好的关键词推荐
  • b2b电子商务网站设计对比进入百度网首页
  • iis7.5 查看网站流量seo排名点击软件推荐
  • 万网没备案怎么做网站2023第二波疫情已经到来了吗
  • 网站实名认证怎么做营销网站搭建
  • 益阳做网站电脑优化软件排行榜
  • 怎么给网站做防护seo基础培训教程
  • 网站怎么做背景不变页面滑动seo推广方法有哪些
  • 做网站 花园路国贸营销策划方案模板范文
  • 做矿产公司的网站大一网页设计作业成品免费
  • 企业网站建设基本原则seo基础知识培训视频
  • 网站建设www.com大型seo公司
  • 哈尔滨巨耀网站建设写一篇软文推广自己的学校
  • 公司加盟代理北京云无限优化
  • 南宁网页制作步骤太原seo建站
  • 建设一个网站需要哪些硬件设备今日最新新闻
  • 东莞网站优化方法有哪些营销文案
  • 做订购网站廊坊关键词优化平台
  • 杭州建平台网站公司小熊代刷推广网站
  • 女性做网站很有名的自动引流推广软件
  • 淘宝 客要推广网站怎么做在线培训系统app
  • 公司被其它人拿来做网站广州网络营销推广公司
  • seo 网站地图优化绍兴seo管理
  • 自己建一个网站需要多少钱2020最新推广方式