咪免直播高品质美女在线视频互动社区_咪免直播官方版_咪免直播直播视频在线观看免费版下载

您的位置:首頁 > 軟件教程 > 教程 > Java Chassis 3技術(shù)解密:實用的可觀測性

Java Chassis 3技術(shù)解密:實用的可觀測性

來源:好特整理 | 時間:2024-06-14 15:37:11 | 閱讀:76 |  標(biāo)簽: VA AVA v S C AV java   | 分享到:

本文將解密如何使用Java Chassis 3可觀測能力來快速定位問題,以及這個能力是如何構(gòu)建起來的。

本文分享自華為云社區(qū)《Java Chassis 3技術(shù)解密:實用的可觀測性》,作者:liubao68。

狹義的可觀測性指的是日志、調(diào)用鏈和指標(biāo);而廣義的可觀測性則包括更多內(nèi)容,一般來說,應(yīng)用程序暴露出的便于理解其運行狀態(tài)、運行軌跡、內(nèi)部結(jié)構(gòu)和功能集合的信息都屬于可觀測性的范圍。本文重點討論狹義的可觀測性。日志揭露了應(yīng)用程序內(nèi)部運行的軌跡,通過異常日志可以理解錯誤產(chǎn)生的原因;調(diào)用鏈反映了一次業(yè)務(wù)操作經(jīng)過的關(guān)鍵處理節(jié)點,可以幫助快速確定問題發(fā)生的邊界;指標(biāo)反映了錯誤發(fā)生時應(yīng)用程序的當(dāng)前或歷史狀態(tài),幫助分析需要一定時間或流量積累才會發(fā)生的問題,比如過載問題、性能問題等?梢姡瑸榱朔治龉收,具備可觀測性能力非常重要。

微服務(wù)系統(tǒng)具備復(fù)雜的調(diào)用關(guān)系和分布式部署特征。為了更好地分析和處理日志、調(diào)用鏈和指標(biāo),通常會部署ELK、SkyWalking和Prometheus等外部系統(tǒng)。然而,這些系統(tǒng)的完全搭建將花費數(shù)十萬計算成本,而且很可能并沒有顯著提升日常問題定位的效率。不當(dāng)?shù)氖褂眠可能會引入性能問題。針對問題定位難的情況,Java Chassis 3提供了非常簡單高效、低成本的解決方案。由于采集的數(shù)據(jù)都與Java Chassis運行過程和系統(tǒng)架構(gòu)強相關(guān),也避免了采集海量無關(guān)數(shù)據(jù),使得數(shù)據(jù)對于問題分析更具針對性,能夠更快速識別問題根因。

以下是我們首先解密如何使用可觀測能力來快速定位問題,然后再解密這個能力是如何構(gòu)建起來的。

問題定位流程

在很多組織里,問題定位通常由不太熟悉系統(tǒng)結(jié)構(gòu)和技術(shù)細節(jié)的運維人員開始,或者由剛接觸系統(tǒng)的新人開始。這給快速定界問題、收集和問題相關(guān)的信息帶來了巨大的挑戰(zhàn)。一個問題從發(fā)現(xiàn)到傳遞給責(zé)任模塊,數(shù)個小時的時間就過去了。設(shè)計一個簡單的問題定位流程,快速定界問題和收集關(guān)聯(lián)信息,是可觀測系統(tǒng)搭建的起點。

當(dāng)用戶識別到一個故障,比如交易失敗,在系統(tǒng)層面,會對應(yīng)到一次系統(tǒng)請求的失敗。在系統(tǒng)設(shè)計之初,會采用一個請求標(biāo)識將用戶故障和系統(tǒng)請求關(guān)聯(lián)起來,即TraceId,這是所有調(diào)用鏈系統(tǒng)設(shè)計的基礎(chǔ)。通常建議前端在發(fā)送請求時攜帶TraceId,便于將前后端請求進行關(guān)聯(lián)。在前端未按照要求攜帶TraceId的情況下,Java Chassis會在應(yīng)用網(wǎng)關(guān)Edge Service生成TraceId,并在給前端響應(yīng)的HTTP頭中攜帶TraceId。當(dāng)用戶識別到一個故障,可以通過瀏覽器等前端工具獲取TraceId。問題定位的起點是獲取TraceId。

Java Chassis 3技術(shù)解密:實用的可觀測性

在管理控制臺,輸入TraceId和問題發(fā)生的大概時間,可以檢索出關(guān)鍵的調(diào)用鏈信息和關(guān)鍵日志信息。通過調(diào)用鏈信息,可以知道請求的執(zhí)行軌跡和發(fā)生問題的節(jié)點;通過關(guān)鍵日志信息,能夠快速確定問題根因。對于一些簡單常見的問題,經(jīng)過這個簡單的步驟,就能夠確定問題根因。

對于一些復(fù)雜的問題,需要獲取上下文日志或指標(biāo)進行深入的分析,運維人員可以在檢索結(jié)果里將完整的日志文件和指標(biāo)信息下載下來,提供給故障服務(wù)的技術(shù)人員。

從上面的過程可以看出,運維人員在不理解系統(tǒng)實現(xiàn)細節(jié)的情況下,也能快速定界和定位一些簡單問題,并能夠快速收集詳細和問題強相關(guān)的信息,提供給技術(shù)人員進一步處理。

實現(xiàn)原理

Java Chassis在設(shè)計之初就內(nèi)置了大量的可觀測能力。使用上述流程,無需部署ELK、SkyWalking和Prometheus去采集數(shù)據(jù),也不需要集成這些工具的SDK或Agent。通過一些開發(fā)規(guī)范約束和可觀測API,就能夠?qū)崿F(xiàn)一個簡單高效和易用的定位系統(tǒng)。

動手試試:可以通過下載和運行fence項目,體驗上述問題定位流程和了解本章節(jié)介紹的實現(xiàn)原理。也可以在實際的業(yè)務(wù)系統(tǒng)中,參考該項目構(gòu)筑業(yè)務(wù)需要的可觀測能力。

Java Chassis通過集成應(yīng)用性能監(jiān)控、微服務(wù)調(diào)用鏈來生成調(diào)用鏈和指標(biāo),日志則使用slf4j來記錄。這些數(shù)據(jù)構(gòu)成了可觀測的基礎(chǔ),接下來就是如何存儲和采集這些數(shù)據(jù)。

通過配置log4j2,可以將日志、調(diào)用鏈和指標(biāo)都輸出到日志文件。特別的,該日志配置約束了數(shù)據(jù)存儲的規(guī)則、路徑,為可觀測API提供了簡單的實現(xiàn)方案。

每個微服務(wù)都集成和實現(xiàn)可觀測API。

最后,我們可以開發(fā)一個管理控制服務(wù),實現(xiàn)管理面可觀測API,就完成了可觀測能力的構(gòu)建。

和傳統(tǒng)方案的對比分析

與部署ELK、SkyWalking和Prometheus去采集數(shù)據(jù)的傳統(tǒng)方案對比,上述方案非常簡單和實用,能夠幫助實時在線分析問題。該方案也無需將日志、調(diào)用鏈和指標(biāo)等數(shù)據(jù)集中存儲下來,可以節(jié)省大量的存儲設(shè)備空間。當(dāng)然,它的缺點也是顯而易見的,對于已經(jīng)下線的服務(wù),或者對于歷史問題需要追溯的情況,則采集不到相關(guān)的信息。站在問題定位的角度,存儲海量的日志、調(diào)用鏈和指標(biāo)數(shù)據(jù),大量數(shù)據(jù)都是和問題無關(guān)的,并且多數(shù)情況是要在第一時間完成問題定界和信息收集,因此上述方案相比傳統(tǒng)方案就有了非常大的競爭力優(yōu)勢。

客戶故事:很多客戶花了大量成本構(gòu)建可觀測能力,依然無法指導(dǎo)運維人員快速定界和定位問題。通過建立一個簡單實用的問題定界流程和采集數(shù)據(jù)的手段,可以幫助提升問題定位效率。

點擊關(guān)注,第一時間了解華為云新鮮技術(shù)~

小編推薦閱讀

好特網(wǎng)發(fā)布此文僅為傳遞信息,不代表好特網(wǎng)認(rèn)同期限觀點或證實其描述。

相關(guān)視頻攻略

更多

掃二維碼進入好特網(wǎng)手機版本!

掃二維碼進入好特網(wǎng)微信公眾號!

本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]

湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2025 haote.com 好特網(wǎng)