Java 如何在Spring-Sleuth中以反应式调用链命名Span

Java 如何在Spring-Sleuth中以反应式调用链命名Span,java,spring-cloud,project-reactor,zipkin,spring-cloud-sleuth,Java,Spring Cloud,Project Reactor,Zipkin,Spring Cloud Sleuth,我让SpringCloudSleuth(2.0.2.RELEASE)在一些基于web的请求/响应系统中的(部分)反应类中工作。代码如下所示: private static final Scheduler PROCESSING_SCHEDULER = Schedulers.newParallel("processingScheduler"); public Set<ProcessedItem> processItems(List<Item> incomingItems)

我让SpringCloudSleuth(2.0.2.RELEASE)在一些基于web的请求/响应系统中的(部分)反应类中工作。代码如下所示:

private static final Scheduler PROCESSING_SCHEDULER = Schedulers.newParallel("processingScheduler");

public Set<ProcessedItem> processItems(List<Item> incomingItems) {
    return Flux.fromIterable(incomingItems)
        .publishOn(PROCESSING_SCHEDULER)
        .collectMultimap(Item::getRequestIdentifier)
        .flatMapIterable(Map::values)
        .flatMap(itemProcessor::processGroupedItems)
        .collect(Collectors.toSet())
        .block();
}
private static final Scheduler PROCESSING_Scheduler=Schedulers.newParallel(“processingScheduler”);
公共集合处理项(列出输入项){
返回流量。从可计算(incomingItems)
.publishOn(处理调度程序)
.collectMultimap(项::getRequestIdentifier)
.FlatMapiteTable(映射::值)
.flatMap(itemProcessor::processGroupedItems)
.collect(收集器.toSet())
.block();
}
由于总是有相当多的响应传入,因此对于一个请求,此方法被调用数百次。 我怀疑使用
.publishOn
调用会导致Zipkin中成百上千个
异步
跨度(请参见随附的屏幕截图)。至少我假设跨度是从那来的,因为这是我从中理解的

所以我的第一个问题是: 如何关联此类异步线程的名称?我没有地方放
@SpanName

作为跟进,有没有办法不收集这些跨度?我不需要它们,它们填满了我们的Zipkin存储空间,但我也不想禁用被动或侦探,因为它在其他地方是需要的


您可以创建自己的自定义
span调节器
,以修改span名称。您也可以使用
FinishedSpanHandler
对完成的跨距进行操作,以调整跨距。

谢谢,我已经看过
spanregulator
,但没有找到
FinishedSpanHandler
。我要试试看!