我刚刚开始使用spring-cloud-sleuth,它可以很好地处理所有类型的http调用。
现在,我也在尝试介绍消息传递部分。我看到了开箱即用的spring-cloud-sleuth与spring-integration的集成。我目前只使用spring-amqp。有没有一种方法可以让它正常工作。有没有人有一些见解或者代码样本?
发布于 2016-07-20 18:23:45
目前我们只通过spring集成直接支持AMQP。为了支持AMQP,您必须确保发送的所有消息都设置了正确的标头,并且当您获得它们时,您必须将这些标头放入本地上下文中。例如,将Span (跟踪)信息注入到消息中的操作是here -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,从消息中提取跟踪数据的操作是here - 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。在此方法中,可以将提取的跨度设置到context 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中
更新:
对于Sleuth2.0.x (Finchley发布系列),如果你有一个兔模板类型的bean (参见here),它应该可以开箱即用。不需要额外的代码。
https://stackoverflow.com/questions/38478194
复制相似问题