首页 > 解决方案 > 如何使用 Sleuth 通过不同的依赖项跟踪跨度?

问题描述

我正在学习如何通过所有微服务跟踪我的分布式进程。我一直在使用 Sleuth、Zipkin 和不同的微服务,效果非常好!但是当我尝试在不同依赖项之间交互的项目中做同样的事情时,我无法创建相同的行为。

此图显示当前如何工作不同的微服务。 在此处输入图像描述

这是微服务的示意图: 在此处输入图像描述

这张图片显示了一个具有依赖关系的应用程序是如何工作的。 在此处输入图像描述

这是具有依赖关系的应用程序图: 在此处输入图像描述

我想知道,是否可以使用依赖项创建与微服务相同的行为?

标签: loggingzipkinspring-cloud-sleuthtraceability

解决方案


以@MarcinGrzejszczak 的输入为参考,我使用自定义跨度解决:

Span remoteDependency = tracer.nextSpan()
                              .name("dependency_name") 
                              .start();

来自哪里tracer的自动装配对象Trace

@Autowired
private Tracer tracer;

两个类都在brave包中

import brave.Span;
import brave.Tracer;

结果:

样本

如果您想更详细地查看实现,这里是示例:https ://github.com/juanca87/sample-traceability-microservices


推荐阅读