TraceID和ThreadLocal简介

TraceID和ThreadLocal简介TraceID 分布式产品查日志太麻烦 多台机器之间查来查去 还不知道是不是同一个请求的 打印日志时使用 MDC 在日志上添加一个 traceId 标示一次调用的上下文 ID 通过此 ID 可以获悉你所做事情的足迹链 MDCMDC MappedDiagno 是一个映射 用于存储运行上下文的特定线程的上下文数据 因此 如果使用 log4j 进行日志记录 则每个线程都可以拥有自己的 MDC 该 MDC 对整个线程是全局的 属于该线程的任何代码都可以轻松访问线程的 MDC 中存在的值

TraceID

分布式产品查日志太麻烦,多台机器之间查来查去,还不知道是不是同一个请求的。打印日志时使用 MDC 在日志上添加一个 TraceID,标示一次调用的上下文ID,通过此ID可以获悉你所做事情的足迹链。

 

MDC

MDC(Mapped Diagnostic Context)是一个映射,用于存储运行上下文的特定线程的上下文数据。因此,如果使用log4j进行日志记录,则每个线程都可以拥有自己的MDC,该MDC对整个线程是全局的。属于该线程的任何代码都可以轻松访问线程的MDC中存在的值。

 

ThreadLocal

Threadlocal而是一个线程内部的存储类,可以在指定线程内存储数据,数据存储以后,只有指定线程可以得到存储数据,Threadlocal提供了线程局部变量。这些变量不同于它们的普通对应物,因为访问一个变量(通过其 get  或 set  方法)的每个线程都有自己的局部变量,它独立于变量的初始化副本。ThreadLocal  实例通常是类中的私有静态字段,它们希望将状态与某一个线程相关联。

 

 

日志溯源

通过TraceID和ThreadLocal结合,可以根据TraceID溯源某次访问的完整访问路径,方便故障定位和业务逻辑梳理。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221047.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午7:02
下一篇 2026年3月17日 下午7:02


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号