资讯专栏INFORMATION COLUMN

Java调用链跟踪关键技术(三)线程变量

ThreeWords / 643人阅读

摘要:除了以上级别的成员变量共享,在调用链跟踪时要能识别不同分层下的多个类实例的调用是同一个请求,而这个请求的调用都在一个独立线程内完成,此时就要用到线程级变量共享。

一、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

相关文章

  • Java调用跟踪关键技术(一)总体介绍

    摘要:微服务中调用栈的获取,使用的开发者会很自然想到用来拦截,但是拦截同一个类的多个方法之间的调用很不方便,有侵入性,因此并不适合。调用栈的跟踪也提供了这个能力,可以获得当前方法的调用栈信息。 一、调用链跟踪的作用 调用链跟踪包括 1.前端到后端的调用链 2.单个服务内部方法之间的调用链 3.微服务之间的调用链 4.应用服务和数据库之间的调用链 5.应用服务和第三方服务中...

    gaara 评论0 收藏0
  • Java调用跟踪关键技术(五)获取调用

    摘要:一调用栈调用链监控仅仅获取调用顺序是不够的,如前所描述左边只体现了顺序,右边体现了顺序和调用栈信息。二获取调用栈在中获取调用栈的方法如下代码示例输出结果可以看到第个栈是调用的方法。 一、调用栈 调用链监控仅仅获取调用顺序是不够的,如前所描述: showImg(https://segmentfault.com/img/bVbvV9H?w=500&h=230);左边只体现了顺序,右边体现...

    VPointer 评论0 收藏0
  • 服务器架构

    摘要:我的后端书架阿里大牛,书单整合一整合一分布式生成器架构师之路这也是本文要讨论的核心问题如何高效生成趋势有序的全局唯一。 轻松搞定 rabbitMQ rabbitMQ 的基本使用。 REST 真的完全适合微服务架构吗? 作者根据自己的微服务经验,提出 REST 并不是微服务的唯一通信机制,从而介绍了微服务的几种通信机制,包括 REST、管道以及基于异步消息传递。同时,作者提出了在不同的场...

    nidaye 评论0 收藏0
  • JVM解剖公园

    摘要:为此,引入转换查找缓冲缓存最近的转换记录。这个优化技术,可以看到将原本对对象的字段访问,替换为一个局部变量的访问。当所有线程都在已知的位置停止的时候,被认为是到达了安全点。检查安全点请求的代码 showImg(https://segmentfault.com/img/bVbwfcz?w=1024&h=576); 1、JVM锁粗化和循环原文标题:JVM Anatomy Quark #1:...

    imingyu 评论0 收藏0

发表评论

0条评论

ThreeWords

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<