@JmsListener的自定义Zipkin跟踪

时间:2019-05-19 11:00:43

标签: spring-boot

我正在使用具有以下依赖项的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

如何自定义生成的跨度以满足我的要求?

0 个答案:

没有答案