我正在使用具有以下依赖项的spring boot 2:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-sleuth-zipkin</artifactId>
</dependency>
我的项目是基于jms的应用程序,它从TIBCO队列接收消息,对其进行处理,然后回复到同一队列。
@JmsListener(destination = "${tibco.queue.name}")
public String onMessage(final String xmlRequest) {
}
接收到的请求采用xml格式,在标头中包含ServiceCorrelationID。 ServiceCorrelationID中的内容包含B3SingleFormat的跟踪和跨度ID,该ID已经由其他项目生成。
<?xml version="1.0" encoding="UTF-8"?>
<ns0:Request>
<ns0:Header>
<ns1:TimeStamp>2019-04-16T11:52:49.465+02:00</ns1:TimeStamp>
<ns1:ServiceCorrelationID>bf400f92570e67e4-c76a5a539bfd40f4-1-bf400f92570e67e4</ns1:ServiceCorrelationID>
</ns0:Header>
<ns0:Payload>
</ns0:Payload>
</ns0:Request>
要求: 不生成新的跨度并跟踪它,而是使用ServiceCorrelationID中的数据但仅更改跨度ID的要求是什么?输入的跨度将成为父代ID。即:
incoming: bf400f92570e67e4-c76a5a539bfd40f4-1-bf400f92570e67e4
to be generated: bf400f92570e67e4-generateNewSpan-1-c76a5a539bfd40f4
如何自定义生成的跨度以满足我的要求?