在升级到spring Boot 3之前,我可以使用以下属性将密钥传播到其他微服务:spring.sleuth.propagation-keys=my_key现在,升级到spring Boot 3后,spring- Boot -starter-sleuth不再可用。有没有人能告诉我如何在Sping Boot 3中在微服务之间传播密钥?在此先谢谢您!
fcwjkofz1#
在Sping Boot 3中没有与spring.sleuth.propagation-keys直接等效的东西。但是,有一个替代方案假设您正在使用Sping Boot 版本3.2.1和依赖项io.micrometer:micrometer-tracing-bridge-brave,在Sping Boot 3中使用Micrometer向Brave添加自定义行李涉及几个步骤:1.定义自定义行李字段为您的自定义行李字段选择一个相关名称。此名称将用于稍后识别和访问行李价值。1.配置传播(可选)默认情况下,Micrometer-Brave使用X-B3-TraceId和X-B3-SpanId等B3标头自动传播上下文。
spring.sleuth.propagation-keys
3.2.1
io.micrometer:micrometer-tracing-bridge-brave
X-B3-TraceId
X-B3-SpanId
management.metrics.export.trace.propagation.type=B3
字符串1.创建行李字段注入Bean实现一个SingleBaggageField类型的Spring bean。此bean为您的自定义行李字段配置名称和可选的传播格式。下面是一个示例:
SingleBaggageField
@Configuration public class CustomBaggageConfig { @Bean public SingleBaggageField customBaggageField() { return SingleBaggageField.create("my-custom-field") .withPropagationFormat(BaggagePropagationFormat.W3C_TRACE_CONTEXT); } }
@Configuration
public class CustomBaggageConfig {
@Bean
public SingleBaggageField customBaggageField() {
return SingleBaggageField.create("my-custom-field")
.withPropagationFormat(BaggagePropagationFormat.W3C_TRACE_CONTEXT);
}
型1.进入和操作行李使用Tracerbean注入到类或方法中,与行李进行交互。要设置值:
@Autowired private Tracer tracer; // ... tracer.baggage().put("my-custom-field", "some-value");
@Autowired
private Tracer tracer;
// ...
tracer.baggage().put("my-custom-field", "some-value");
型为了得到值
String customValue = tracer.baggage().get("my-custom-field");
型1.托运行李(可选)如果您选择不对自定义baggage字段使用B3传播,则需要手动将其注入到传出请求或消息中。这可能涉及添加自定义标头或特定于消息传递系统的其他上下文传播机制。
附加提示:
以下文章可能对您有所帮助:https://amithkumarg.medium.com/distributed-tracing-for-spring-boot-3x-app-using-micrometer-brave-and-zipkin-a43fc107bff4
1条答案
按热度按时间fcwjkofz1#
在Sping Boot 3中没有与
spring.sleuth.propagation-keys
直接等效的东西。但是,有一个替代方案假设您正在使用Sping Boot 版本
3.2.1
和依赖项io.micrometer:micrometer-tracing-bridge-brave
,在Sping Boot 3中使用Micrometer向Brave添加自定义行李涉及几个步骤:1.定义自定义行李字段
为您的自定义行李字段选择一个相关名称。此名称将用于稍后识别和访问行李价值。
1.配置传播(可选)
默认情况下,Micrometer-Brave使用
X-B3-TraceId
和X-B3-SpanId
等B3标头自动传播上下文。字符串
1.创建行李字段注入Bean
实现一个
SingleBaggageField
类型的Spring bean。此bean为您的自定义行李字段配置名称和可选的传播格式。下面是一个示例:型
1.进入和操作行李
使用Tracerbean注入到类或方法中,与行李进行交互。
要设置值:
型
为了得到值
型
1.托运行李(可选)
如果您选择不对自定义baggage字段使用B3传播,则需要手动将其注入到传出请求或消息中。这可能涉及添加自定义标头或特定于消息传递系统的其他上下文传播机制。
附加提示:
以下文章可能对您有所帮助:https://amithkumarg.medium.com/distributed-tracing-for-spring-boot-3x-app-using-micrometer-brave-and-zipkin-a43fc107bff4