摘要:除了以上级别的成员变量共享,在调用链跟踪时要能识别不同分层下的多个类实例的调用是同一个请求,而这个请求的调用都在一个独立线程内完成,此时就要用到线程级变量共享。
一、Java类成员作用域
JAVA类成员作用域参考下图:
Java虚拟机级作用域,通过在类成员变量前加static关键字修饰实现在整个Java虚拟机中共享。
类实例级作用域,成员变量前不加static关键字修饰则可,如图中Class A、Class B、Class C的成员变量,只在类实例中共享。
除了以上级别的成员变量共享,在调用链跟踪时要能识别不同分层下的多个类实例的调用是同一个请求,而这个请求的调用都在一个独立线程内完成,此时就要用到线程级变量共享。
二、实现线程变量共享在Java中可以通过ThreadLocal实现线程变量共享,即便不需要跟踪调用链,仅仅是跟踪SQL调用的数据流也是非常有用。
ThreadLocal的使用可以参考这篇文章:https://www.jianshu.com/p/4e1...
end.
加入《Java栈实战营》知识星球,参与讨论,更多实战代码分享,不就是几斤苹果,几个荣耀道具的事吗!
https://t.zsxq.com/RNzfi2j
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/75788.html
摘要:微服务中调用栈的获取,使用的开发者会很自然想到用来拦截,但是拦截同一个类的多个方法之间的调用很不方便,有侵入性,因此并不适合。调用栈的跟踪也提供了这个能力,可以获得当前方法的调用栈信息。 一、调用链跟踪的作用 调用链跟踪包括 1.前端到后端的调用链 2.单个服务内部方法之间的调用链 3.微服务之间的调用链 4.应用服务和数据库之间的调用链 5.应用服务和第三方服务中...
摘要:一调用栈调用链监控仅仅获取调用顺序是不够的,如前所描述左边只体现了顺序,右边体现了顺序和调用栈信息。二获取调用栈在中获取调用栈的方法如下代码示例输出结果可以看到第个栈是调用的方法。 一、调用栈 调用链监控仅仅获取调用顺序是不够的,如前所描述: showImg(https://segmentfault.com/img/bVbvV9H?w=500&h=230);左边只体现了顺序,右边体现...
阅读 2695·2023-04-25 19:13
阅读 4019·2021-09-22 15:34
阅读 3055·2019-08-30 14:23
阅读 1464·2019-08-29 17:17
阅读 1605·2019-08-29 16:05
阅读 1539·2019-08-29 13:26
阅读 1219·2019-08-29 13:19
阅读 556·2019-08-29 13:16