我只是用spring-cloud-sleuth
做了第一步,它适用于所有类型的http调用。
现在我也试着看一下覆盖消息传递部分。我看到spring-cloud-sleuth
与开箱即用的spring-integration
集成在一起。我目前只使用spring-amqp
。还有办法让这个工作。有没有人有一些见解甚至代码样本?
目前我们只通过弹簧集成直接支持AMQP。为了支持AMQP,您必须确保发送的所有消息都设置了正确的标头,当您将它们取回时,您必须将这些标头放入本地上下文中。例如,在这里完成向消息注入Span(跟踪)信息-https://github.com/spring-cloud/spring-cloud-sleuth/blob/v1.3.5.RELEASE/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/MessagingSpanTextMapInjector.java并从消息中提取跟踪数据在这里是https://github.com/spring-cloud/spring-cloud-sleuth/blob/v1.3.5.RELEASE/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/MessagingSpanTextMapExtractor.java。在此方法中,您可以将提取的Span设置为上下文https://github.com/spring-cloud/spring-cloud-sleuth/blob/v1.3.5.RELEASE/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TraceChannelInterceptor.java#L71
更新:
使用Sleuth 2.0.x(Finchley发布列车),如果你有一个兔子模板类型的bean(参见here),它应该开箱即用。不需要额外的代码。