【发布时间】:2021-12-30 15:19:58
【问题描述】:
我目前正在开发一个使用 Spring cloud sleuth 依赖项的 spring webflux 项目。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
<version>2.2.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
<version>2.5.1</version>
</dependency>
我正在研究一组 API,它们获取包含 3 个字符串的请求负载。我想连接这 3 个字符串以用作我的自定义跟踪 ID。我也想达到以下要求。
- 这个 custom_trace_id 应该可以添加到每个日志中。 (我们通过在 log4j.xml 文件中添加
%X{traceId}以在所有日志中打印 traceId 来获取日志中的侦探跟踪 ID) - 此自定义跟踪 ID 必须发送到 WebClient 进行的调用(Sleuth 将 X-B3-TraceId 标头设置为 WebClient 进行的所有调用,我想要相同但使用 custom_trace_id )
- 如果可能的话,我想将 X-B3-TraceId 标头的名称更改为不同的值,例如 correlation-id,这样如果有人向我们的 spring webflux 应用程序发出请求,侦探应该首先检查 correlation-id 并将其用作跟踪 id。 (注:custom_trace_id = 相关 ID)
请注意,spring sleuth 已经完成了上述 3 件事。我想为跟踪 id 设置自定义值。有人可以为我的用例提供帮助或建议吗
【问题讨论】:
标签: java spring spring-boot spring-webflux spring-cloud-sleuth