Pok*_*kni 2 spring-boot micrometer brave micrometer-tracing
我正在尝试将 TraceId 从一个服务传播到由其余模板/Web 客户端调用的另一个服务
我希望 TraceId 是相同的,但实际上会生成新的。
服务1:
@Bean
public WebClient webClient() {
return WebClient.create("http://localhost:8080");
}
Run Code Online (Sandbox Code Playgroud)
简单调用 service-2:
webClient.get().retrieve().bodyToMono(String.class).block();
Run Code Online (Sandbox Code Playgroud)
我在这两个服务中都有这些依赖项:
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-tracing-bridge-brave</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我使用休息模板得到了相同的行为。根据文档,traceparent
标头应该被传播,但事实并非如此。我使用的是 Spring Boot 3.0.5
小智 7
当您从头开始构建 WebClient 时,不会发生自动配置。您应该更改 WebClient bean 方法并注入 WebClient.Builder。
@Bean
public WebClient webClient(WebClient.Builder builder) {
return builder.baseUrl("....").build();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2096 次 |
最近记录: |