使用 AOP 在 Spring Boot 中实现跟踪和日志记录

在现代应用程序中,尤其是使用微服务构建的应用程序,跟踪和日志记录在跟踪流经各种服务的请求方面起着至关重要的作用。跟踪可帮助开发人员诊断问题、监控性能并了解用户在多个系统中的旅程。

在此博客中,我们将介绍如何使用traceId从前端生成的代码在 Spring Boot 应用程序中实现跟踪和日志记录,我们还将探索在微服务环境中进行分布式跟踪的选项。

什么是追踪?

跟踪是指为traceId请求分配一个唯一标识符(通常称为),并确保该标识符在请求经过应用程序中的不同层或服务时随请求一起移动。这对于了解请求流至关重要,尤其是在排查错误或性能瓶颈时。

traceId为什么从前端生成并发送?

在微服务架构中,请求通常会流经多个服务和组件。traceId在前端生成请求具有以下几个优点:

  1. 端到端可视性traceId从用户交互开始,可以更轻松地跟踪从前端到后端服务的请求。这确保了对整个堆栈中用户操作的完全可视性。
  2. 一致跟踪:通过在前端生成traceId并将其包含在每次请求中,相同的内容traceId会传播到所有服务。这可以实现跨多个 API 调用和服务的一致跟踪。
  3. 会话级跟踪:当用户会话开始时,前端可以生成一个会话traceId并将其用于该会话中的所有请求。这允许开发人员跟踪用户在单个会话中执行的所有操作。

步骤 1:traceId从 React生成并发送

让我们首先在 React 前端生成traceId并将其与每个 API 请求一起发送。

traceId在 React 中生成

我们将使用该uuid库为每个会话生成一个唯一的标识符:

npm install uuid

然后