30、Skywalking的使用-异步链路追踪

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了30、Skywalking的使用-异步链路追踪相关的知识,希望对你有一定的参考价值。

参考技术A 通过对 Callable , Runnable , Supplier 这3种接口的实现者进行增强拦截,将trace的上下文信息传递到子线程中,实现了异步链路追踪。

有非常多的方式来实现 Callable , Runnable , Supplier 这3种接口,那么增强就面临以下问题:

可能基于以上问题的考虑,skywalking提供了一种即通用又快捷的方式来规范这一现象:

包装类 都有注解 @TraceCrossThread ,skywalking内部的拦截匹配逻辑是,标注了 @TraceCrossThread 的类,拦截 其名称为 call 或 run 或 get ,且没有入参的方法;对使用者来说大致分为2种方式:

需引入如下依赖(版本限参考):

Skywalking 通过 CallableWrapper 包装 Callable

Skywalking 通过 RunnableWrapper 包装 Runnable

通过RunnableWrapper.of(xxx)包装rannable即可。

Skywalking 通过 SupplierWrapper<V> 包装 Supplier<V>

需要将trace信息,在线程之间传递,比如 线程A -调用-> 线程B 的场景:

以上是关于30、Skywalking的使用-异步链路追踪的主要内容,如果未能解决你的问题,请参考以下文章

微服务链路追踪SkyWalking

分布式skywalking链路追踪详细教程

linux安装全链路追踪工具skywalking8.0

微服务链路追踪-SkyWalking

专为云原生微服务架构而设计的链路追踪工具 SkyWalking介绍及搭建

Spring Cloud Alibaba全家桶——微服务链路追踪SkyWalking