2016-12-02 257 views
1

我在微服務之間使用Kafka進行Asyng調用,並且我正在使用Spring Sleuth進行日誌記錄。日誌記錄是可以的,但是當從Microservice1到Microservice2有消息時,日誌記錄的消息具有不同的Trace-ID。難道他們不必具有相同的跟蹤ID,但是不同的SpanId?有沒有特別的配置?Spring Cloud Sleuth不同的跟蹤ID與Kafka集成

+0

默認郵件標題不會被Kafka活頁夾傳送,你必須通過'spring.cloud.stream.kafka.binder.h eaders'手動描述[這裏](http://docs.spring.io/spring-cloud-stream/docs/current/reference/htmlsingle/#_kafka_binder_properties)。然後檢查那些跟蹤相關的頭文件是否正確發送。 – tan9

+0

非常感謝您的snwer @ tan9! :d。 我發現從YAML文件的代碼: 彈簧: 雲: 流: 卡夫卡: 粘合劑: 頭: - X-B3-TraceId - X-B3-SpanId - X-B3- Sampler - X-B3-ParentSpanId - X-Span-Name - X-Process-Id 你知道如何放在application.properties文件中嗎? – AleGallagher

+0

'spring.cloud.stream.kafka.binder.headers [0] = X-B3-TraceId' 'spring.cloud.stream.kafka.binder.headers [1] = X-B3-SpanId' ... 或者使用'spring.cloud.stream.kafka.binder.headers = X-B3-SpanId,X-B3-SpanId,...' – tan9

回答

2

默認情況下,郵件標題不會由Spring Cloud Kafka活頁夾傳輸,您必須手動設置spring.cloud.stream.kafka.binder.headers,如Spring Cloud Stream Reference Guide中所述。然後檢查那些跟蹤相關的頭文件是否正確發送。

您可以設置基普金頭在你的application.yml如下:

spring: 
    cloud: 
    stream: 
     kafka: 
     binder: 
      headers: 
      - X-B3-TraceId 
      - X-B3-SpanId 
      - X-B3-Sampled 
      - X-B3-ParentSpanId 
      - X-Span-Name 
      - X-Span-Export 

或者在您的application.properties:

spring.cloud.stream.kafka.binder.headers[0]=X-B3-TraceId 
spring.cloud.stream.kafka.binder.headers[1]=X-B3-SpanId 
spring.cloud.stream.kafka.binder.headers[2]=B3-Sampled 
spring.cloud.stream.kafka.binder.headers[3]=X-B3-ParentSpanId 
spring.cloud.stream.kafka.binder.headers[4]=X-Span-Name 
spring.cloud.stream.kafka.binder.headers[5]=X-Span-Export 

或者以逗號分隔的列表:

spring.cloud.stream.kafka.binder.headers=X-B3-TraceId,X-B3-SpanId,B3-Sampled,\ 
    X-B3-ParentSpanId,X-Span-Name,X-Span-Export 
+0

非常感謝! :d – AleGallagher