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 能够处理此信息并将其存储在本地以便继续痕迹。
您需要使用 SpanInjector
和 SpanExtractor
(Sleuth 2.0 之前)或 Brave 的处理程序机制来正确处理 span 的接收和发送。
关于spring-boot - Spring Cloud 侦探是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48598375/