traceId 全链路
一次请求,五个入口取到同一个 traceId。
来源
链路标识由 Micrometer Tracing(OTel 桥)写入 MDC,是全框架唯一的链路 id 来源。禁止自建链路 id,也禁止再引入自定义链路头。
取法
MiniMaoContextHolder.getTraceId()
- 响应体里直接带
traceId字段,前端取它即可,不要自定义响应头。 - 跨服务传播只走标准的
traceparent。
五个入口全等
| 入口 | 说明 |
|---|---|
| HTTP 请求 | 由链路入口 filter 创建 |
| 定时任务 | 任务入口续接 |
| 消息消费 | 消费入口续接 |
| 线程池任务 | 用框架执行器,自动传播上下文 |
| 异步调用 | 上下文与 MDC 一起传播,结束后恢复现场 |
注意:禁止 new Thread 与自建线程池:那样上下文传不过去,traceId 会断。
空值怎么读
日志里 [] 表示这一行不在任何请求链路内(启动期、Servlet 首次初始化、非 HTTP 入口),不是链路丢失。接口日志"时有时无"先查这一条。
最后更新 2026-10-09编辑此页 →