摘要:除了以上級別的成員變量共享,在調(diào)用鏈跟蹤時要能識別不同分層下的多個類實例的調(diào)用是同一個請求,而這個請求的調(diào)用都在一個獨立線程內(nèi)完成,此時就要用到線程級變量共享。
一、Java類成員作用域
JAVA類成員作用域參考下圖:
Java虛擬機級作用域,通過在類成員變量前加static關(guān)鍵字修飾實現(xiàn)在整個Java虛擬機中共享。
類實例級作用域,成員變量前不加static關(guān)鍵字修飾則可,如圖中Class A、Class B、Class C的成員變量,只在類實例中共享。
除了以上級別的成員變量共享,在調(diào)用鏈跟蹤時要能識別不同分層下的多個類實例的調(diào)用是同一個請求,而這個請求的調(diào)用都在一個獨立線程內(nèi)完成,此時就要用到線程級變量共享。
二、實現(xiàn)線程變量共享在Java中可以通過ThreadLocal實現(xiàn)線程變量共享,即便不需要跟蹤調(diào)用鏈,僅僅是跟蹤SQL調(diào)用的數(shù)據(jù)流也是非常有用。
ThreadLocal的使用可以參考這篇文章:https://www.jianshu.com/p/4e1...
end.
加入《Java棧實戰(zhàn)營》知識星球,參與討論,更多實戰(zhàn)代碼分享,不就是幾斤蘋果,幾個榮耀道具的事嗎!
https://t.zsxq.com/RNzfi2j
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/75788.html
摘要:微服務(wù)中調(diào)用棧的獲取,使用的開發(fā)者會很自然想到用來攔截,但是攔截同一個類的多個方法之間的調(diào)用很不方便,有侵入性,因此并不適合。調(diào)用棧的跟蹤也提供了這個能力,可以獲得當(dāng)前方法的調(diào)用棧信息。 一、調(diào)用鏈跟蹤的作用 調(diào)用鏈跟蹤包括 1.前端到后端的調(diào)用鏈 2.單個服務(wù)內(nèi)部方法之間的調(diào)用鏈 3.微服務(wù)之間的調(diào)用鏈 4.應(yīng)用服務(wù)和數(shù)據(jù)庫之間的調(diào)用鏈 5.應(yīng)用服務(wù)和第三方服務(wù)中...
摘要:一調(diào)用棧調(diào)用鏈監(jiān)控僅僅獲取調(diào)用順序是不夠的,如前所描述左邊只體現(xiàn)了順序,右邊體現(xiàn)了順序和調(diào)用棧信息。二獲取調(diào)用棧在中獲取調(diào)用棧的方法如下代碼示例輸出結(jié)果可以看到第個棧是調(diào)用的方法。 一、調(diào)用棧 調(diào)用鏈監(jiān)控僅僅獲取調(diào)用順序是不夠的,如前所描述: showImg(https://segmentfault.com/img/bVbvV9H?w=500&h=230);左邊只體現(xiàn)了順序,右邊體現(xiàn)...
摘要:我的后端書架阿里大牛,書單整合一整合一分布式生成器架構(gòu)師之路這也是本文要討論的核心問題如何高效生成趨勢有序的全局唯一。 輕松搞定 rabbitMQ rabbitMQ 的基本使用。 REST 真的完全適合微服務(wù)架構(gòu)嗎? 作者根據(jù)自己的微服務(wù)經(jīng)驗,提出 REST 并不是微服務(wù)的唯一通信機制,從而介紹了微服務(wù)的幾種通信機制,包括 REST、管道以及基于異步消息傳遞。同時,作者提出了在不同的場...
閱讀 2710·2023-04-25 19:13
閱讀 4057·2021-09-22 15:34
閱讀 3067·2019-08-30 14:23
閱讀 1479·2019-08-29 17:17
閱讀 1619·2019-08-29 16:05
閱讀 1553·2019-08-29 13:26
閱讀 1228·2019-08-29 13:19
閱讀 568·2019-08-29 13:16