Spring Boot + Logback + MDC 实现分布式链路追踪
引言在微服务架构中,一个用户请求通常会流经多个服务。为了快速定位问题和分析系统瓶颈,我们需要一种方法来追踪这个请求在整个分布式系统中的调用链。分布式链路追踪应运而生,它通过为每个请求分配一个全局唯一的Trace ID,并将这个ID在服务调用间传递,使得我们可以将散落在各个服务中的日志串联起来。 Logback、Log4j等日志框架提供的MDC(Mapped Diagnostic Context,映射调试上下文)功能,是实现链路追踪的利器。MDC本质上是一个与当前线程绑定的ThreadLocal哈希表,我们可以在其中存入键值对(如Trace ID),并在日志格式中引用它,从而轻松地为该线程产生的所有日志都带上统一的追踪标识。 本文将详细介绍如何结合Spring Boot、Logback和MDC,从零开始实现一个轻量级的分布式链路追踪方案,并解决在多线程和跨服务HTTP调用场景下Trace ID丢失的问题。 MDC介绍MDC(Mapped Diagnostic Context) 是 Logback 和 Log4j 等日志框架提供的一种在多线程环境下进行诊断和调试的工具。其核心原理是利...
Jaeger 的安装及简单使用
前言Jaeger 是一个开源的端到端的分布式跟踪系统, 允许用户在复杂的分布式系统中监控和排查故障。 利用Rancher的安装方式安装cert-manager参考文档: jaeger requires:https://www.jaegertracing.io/docs/1.49/operator/#prerequisite cmctl(the tool which is to manage and verify cert-manager) install:https://cert-manager.io/v1.6-docs/usage/cmctl/#installation cert-manager verify:https://cert-manager.io/v1.6-docs/installation/verify/ 安装cert-manager:https://cert-manager.io/v1.6-docs/installation/kubectl/ 默认静态安装cert-manager:https://cert-manager.io/v1.6-docs/installa...
