首页 > 解决方案 > Zipkin trace id 在 producerTemplate 上丢失

问题描述

我有一个通过 rest 调用的 api,然后将消息发送到骆驼队列,在该队列上创建新的跟踪 id 而不是使用初始的,尝试手动设置“X-B3-TraceId”标头,但看起来它仍然被覆盖. 我错过了什么让它被忽略吗?我的 ZipkinTracer 配置如下所示:

@Bean
@ConditionalOnMissingBean(ZipkinTracer.class)
ZipkinTracer zipkin(final CamelContext camelContext) {

    ZipkinTracer zipkin = new ZipkinTracer();
    zipkin.setPort(9411);
    zipkin.setHostName("127.0.0.1");
    zipkin.setRate(1f);
    zipkin.setEndpoint("http://localhost:9411/api/v2/spans");
    OkHttpSender sender = OkHttpSender.create("http://localhost:9411/api/v2/spans");
    zipkin.setSpanReporter(AsyncReporter.create(sender));
    camelContext.setTracing(true);
    zipkin.init(camelContext);

    return zipkin;
}

我通过构造一个交换对象并将其传递给 producerTemplate 来发送一条消息。

producerTemplate.send(startEndpoint, exchange)

标签: apache-camelzipkinopen-telemetrydistributed-tracing

解决方案


推荐阅读