Java 如何在Spring-Sleuth中以反应式调用链命名Span
我让SpringCloudSleuth(2.0.2.RELEASE)在一些基于web的请求/响应系统中的(部分)反应类中工作。代码如下所示: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)
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
。我要试试看!