使用Openzipkin Brave跟踪ForkJoinPool

问题描述 投票:1回答:1

我正在尝试将Openzipkin Brave应用于应用程序以使用Logback帮助记录跟踪。该应用程序是一个spring webmvc应用程序,它使用ForkJoinPool。

跟踪主线程(spring webmvc部分)是有效的,但是我很难将跟踪上下文传递给ForkJoinThread。根据我的理解,跟踪上下文存储在threadlocal中,而ForkJoinWorkerThread(或ForkJoinTask)显然无法访问它。我想知道我怎么能让它发挥作用。

java spring-mvc tracing zipkin forkjoinpool
1个回答
0
投票

编辑:我们在回答这个问题时发现,ForkJoinPool目前与Brave无法合作。由于课堂上的API限制,我们还无法找到解决方案。

以下假设使用Brave版本5(它也可能适用于4):

CurrentTraceContext API为我们提供了一种方法:executorService,我们可以用来包装ExecutorService。所以你需要做类似以下的事情:


    ForkJoinPool fjp = ...;
    CurrentTraceContext ctc = Tracing.currentTraceContext();
    ExecutorService wrappedExecutorService = ctc.executorService(fjp);

然后在使用wrappedExecutorService时使用ForkJoinPool

© www.soinside.com 2019 - 2024. All rights reserved.