gpt4 book ai didi

Spring 侦探 |创建全新的(分离的/孤立的)Trace

转载 作者:行者123 更新时间:2023-12-05 06:35:35 25 4
gpt4 key购买 nike

我有一个 Spring Boot使用 Spring Sleuth 的应用程序用于跟踪服务间调用。在该应用程序中 ScheduledExecutorService存在在循环中执行 http 请求(下面的伪代码):

class HttpCaller implements Runnable {
public void run() {
performHttpCall();
// "loop"
executor.submit(this::run);
}
}

// start it once
scheduler.submit(new HttpCaller());

如果我现在看一下 Sleuth 生成并存储在 Zipkin 中的痕迹我可以看到所有 http 调用都关联到单个 Trace。很可能是因为跟踪上下文是在调用 ScheduledExecutorService::submit 期间移交的。

如何在开始下一次迭代之前清除当前跟踪,以便每次 http 调用都会产生新的分离/孤立跟踪?

最佳答案

如果您使用的是 Sleuth 2.0,则可以调用 Tracer 方法来创建新的跟踪。在旧版本的 sleuth 中,我想我会做的是使用 NOT 一个 bean 的执行器。这样你就会丢失跟踪并且它会在某个时候重新启动(通过休息模板或类似的东西)。

关于 Spring 侦探 |创建全新的(分离的/孤立的)Trace,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49686743/

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