我打了一些不同服务的电话。我计划并行运行它们。每个方法的输出均为Monix Task类型。
让两个对象使用两种不同的方法。 method1
和method2
调用不同的REST端点。
output1 = obj1.method1(param1)
output2 = obj1.method2(param2)
output1
和output2
是不同的类型。
我尝试使用Monix的parZip2
方法并行执行output1和output2。当我在代码的第一行上方打印Kamon的跨度时,我具有Trace ID,Span ID等的值。但是当并行执行时,trace ID会以某种方式消失,并且当我检查Zipkin时,我不会查看痕迹。
我尝试在并行处理两个调用的代码块周围编写类似的代码。
val span = Kamon.currentSpan()
Kamon.withSpan(span) {
// do some logic for parallel processing
}
,但端点调用的跟踪ID仍为空白。 有办法解决这个问题吗?