gpt4 book ai didi

Spring Cloud Sleuth 不同的跟踪 ID 与 Kafka 集成

转载 作者:行者123 更新时间:2023-12-04 01:49:56 27 4
gpt4 key购买 nike

我在微服务之间使用 Kafka 进行异步调用,我正在使用 Spring Sleuth 进行日志记录。日志没问题,但是当有消息从微服务1到微服务2时,日志的消息有不同的Trace-ID。他们不是必须具有相同的跟踪 ID 但具有不同的 SpanId 吗?有什么特别的配置吗?

最佳答案

默认情况下,消息头不会被 Spring Cloud Kafka binder 传输,您必须按照 Spring Cloud Stream Reference Guide 中的描述通过 spring.cloud.stream.kafka.binder.headers 手动设置它。然后检查那些与跟踪相关的 header 是否已正确发送。

您可以在 application.yml 中按如下方式设置 Zipkin header :

spring:
cloud:
stream:
kafka:
binder:
headers:
- X-B3-TraceId
- X-B3-SpanId
- X-B3-Sampled
- X-B3-ParentSpanId
- X-Span-Name
- X-Span-Export

或者在您的 application.properties 中:
spring.cloud.stream.kafka.binder.headers[0]=X-B3-TraceId
spring.cloud.stream.kafka.binder.headers[1]=X-B3-SpanId
spring.cloud.stream.kafka.binder.headers[2]=B3-Sampled
spring.cloud.stream.kafka.binder.headers[3]=X-B3-ParentSpanId
spring.cloud.stream.kafka.binder.headers[4]=X-Span-Name
spring.cloud.stream.kafka.binder.headers[5]=X-Span-Export

或者在逗号分隔的列表中:
spring.cloud.stream.kafka.binder.headers=X-B3-TraceId,X-B3-SpanId,B3-Sampled,\
X-B3-ParentSpanId,X-Span-Name,X-Span-Export

关于Spring Cloud Sleuth 不同的跟踪 ID 与 Kafka 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40923367/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com