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的使用-异步链路追踪的主要内容,如果未能解决你的问题,请参考以下文章