spring-boot - Spring Cloud 侦探是如何工作的?

标签 spring-boot spring-cloud spring-cloud-sleuth

spring cloud sleuth 如何在幕后工作?它也能跟踪库调用吗?我有一个使用库 B 的 spring boot 项目 A。任何对项目 A 中端点的命中都由 sleuth 跟踪,但是当我尝试命中库 B 上的 rest Controller 时,sleuth 无法跟踪请求。有没有办法让侦探也跟踪库调用?

最佳答案

Spring Cloud Sleuth 直到版本 2.0 都有自己的跟踪器,并且从 2.0 开始它正在重用 https://github.com/openzipkin/brave .跟踪器负责传递跟踪上下文。这是什么意思?这意味着您必须传播跟踪信息:

  • 当前span是多少(span是一个工作单元)
  • 当前跟踪是什么(跟踪是构成单个业务操作的所有工作单元的 id)

跟踪信息在进程内(在不同的库、线程等之间)和进程外(通过 Http header 、消息传递等)传播,Sleuth 能够处理此信息并将其存储在本地以便继续痕迹。

您需要使用 SpanInjectorSpanExtractor(Sleuth 2.0 之前)或 Brave 的处理程序机制来正确处理 span 的接收和发送。

关于spring-boot - Spring Cloud 侦探是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48598375/

相关文章:

spring-boot - 将 spring-cloud-starter-sleuth 依赖项添加到 Spring-Boot 应用程序中,一些 Rest Doc 测试失败

java - spring cloud netflix jersey 版本冲突

java - 如何使用 Spring Controller 从 URL 读取文件?

java - 如何在没有 Spring boot 的情况下创建 Spring sleuth 应用程序

spring-boot - 问题 Spring Boot Redis 多个应用程序消费数据

spring-cloud - Zuul 将 hystrix 隔离策略默认为 SEMAPHORE

prometheus - Prometheus 中的 Zipkin 踪迹

spring-boot - 使用 wicket 和 spring-boot 的浏览器拒绝样式表

spring-boot - Spring Boot 2 - 执行器指标端点不起作用

java - 如何在微服务的多个实例之间维护 SseEmitters 列表?