更新時(shí)間:2021-10-29 10:40:28 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1988次
微服務(wù)是可自主部署的、以業(yè)務(wù)為中心的單元。并非所有部署工件都是單獨(dú)的服務(wù)。例如,可能有一個(gè)具有運(yùn)行時(shí)組件和 ETL 組件的微服務(wù)。想將它們部署在一起,因?yàn)樗鼈兪蔷o密耦合的。在大多數(shù)情況下,還想將這些作為一項(xiàng)服務(wù)進(jìn)行監(jiān)控。對(duì)于微服務(wù),希望將它們視為獨(dú)立的服務(wù),但也希望評(píng)估它們之間的相關(guān)性。
現(xiàn)在,讓我們看看監(jiān)控微服務(wù)時(shí)需要的五個(gè)步驟。
在實(shí)施或?qū)W習(xí)新事物時(shí),嘗試一次性啟動(dòng)并運(yùn)行所有精彩功能可能很誘人。在Java軟件開發(fā)工具中,我們稱之為閃亮工具綜合癥。我們?nèi)绱顺撩杂谝粋€(gè)充滿可能性的領(lǐng)域,以至于我們可能會(huì)迷失在設(shè)置事物的復(fù)雜性中。
為避免這種情況,請(qǐng)限制您為監(jiān)控微服務(wù)而設(shè)置的內(nèi)容。選擇兩個(gè)或三個(gè)服務(wù)來連接到您的新監(jiān)控工具。然后對(duì)每一個(gè)重復(fù)步驟 2 到 5(見下文)。
您應(yīng)該選擇哪些服務(wù)?
要從本文開頭繼續(xù)比較,請(qǐng)選擇您的交響樂中最響亮的樂器。哪些服務(wù)對(duì)您的業(yè)務(wù)最具戰(zhàn)略意義?選擇最具戰(zhàn)略意義的服務(wù)將為您的努力帶來最高價(jià)值。
您在選擇最具戰(zhàn)略意義的服務(wù)時(shí)可能會(huì)受到限制。也許其中一些是遺留應(yīng)用程序,它們可能無法與較新的工具很好地配合使用,或者沒有可以讓您輕松重新配置它們的測(cè)試。在這種情況下,請(qǐng)選擇您認(rèn)為最安全且可以在本地運(yùn)行的幾項(xiàng)服務(wù),以確保正確連接。
總體目標(biāo)是將您的注意力限制在幾個(gè)服務(wù)上——無論您如何選擇。
與限制注意力的想法一致,您需要專注于要衡量的前一到三個(gè)最重要的指標(biāo)。一些工具有很多功能。例如,Retrace 可以執(zhí)行性能指標(biāo)、警報(bào)、集中日志記錄和錯(cuò)誤跟蹤。如果您還沒有選擇監(jiān)控微服務(wù)的工具,查看所有功能可能會(huì)令人生畏。
相比之下,僅查看一到三個(gè)最重要的指標(biāo)將使您能夠避免這種分析癱瘓。這樣你就可以更快地在第 3 步中滾動(dòng),而不是試圖一下子理解所有內(nèi)容。
您應(yīng)該關(guān)注哪些指標(biāo)?
要確定在監(jiān)控微服務(wù)時(shí)要關(guān)注哪些指標(biāo),了解您的業(yè)務(wù)需求很重要。大多數(shù)客戶或運(yùn)營(yíng)投訴來自哪里?是因?yàn)榉?wù)關(guān)閉太多還是請(qǐng)求太慢?也許是因?yàn)樵诟哓?fù)載期間出現(xiàn)了太多數(shù)據(jù)庫(kù)錯(cuò)誤。
您對(duì)您的業(yè)務(wù)了解得越深入,您就越容易選擇要選擇工具的指標(biāo)。此外,您可以更輕松地為您的老板花費(fèi)您所需的預(yù)算,以便您購(gòu)買工具。
如果您發(fā)現(xiàn)自己孤立無援(與其他團(tuán)隊(duì)或部門分離)或不知所措,不知道什么對(duì)您的業(yè)務(wù)最重要,該怎么辦?從四個(gè)黃金信號(hào)開始。這些信號(hào)是一種久經(jīng)考驗(yàn)的方法,可以從監(jiān)控服務(wù)中獲得即時(shí)價(jià)值。它們幾乎對(duì)任何企業(yè)都有用。Retrace支持這些開箱即用的功能,并具有智能默認(rèn)值,具體取決于您正在監(jiān)控的服務(wù)類型。
現(xiàn)在你已經(jīng)完成了你的功課,你可以選擇一個(gè)監(jiān)控工具。使用您的一到三個(gè)重要指標(biāo)來指導(dǎo)您如何看待一個(gè)指標(biāo)。如果他們有演示實(shí)例,您可以盡情玩樂以了解它的實(shí)際工作原理。這是理想的體驗(yàn),因?yàn)槠聊唤貓D只能帶您到此為止。
無論指標(biāo)如何,您都希望在監(jiān)控工具中看到一些內(nèi)容。首先,您需要輕松概覽整個(gè)系統(tǒng)。這不僅包括您的運(yùn)行時(shí)服務(wù),還包括您的數(shù)據(jù)庫(kù)和其他后端組件。這樣做可以讓您輕松感受整個(gè)系統(tǒng)的節(jié)奏,就像聽一首所有樂器協(xié)同工作的歌曲一樣。
您還需要儀表板,讓您可以跨服務(wù)關(guān)聯(lián)。這些可能會(huì)揭示在您的代碼中不容易看到的關(guān)系。(如果您按照下面列出的第 5 步操作,您可以快速?gòu)倪@些跳轉(zhuǎn)到集中式日志記錄,以查看到底發(fā)生了什么。)
工具應(yīng)該做什么
最后,該工具應(yīng)該可以讓您輕松地將概覽分解為系統(tǒng)的特定服務(wù)和部分。您應(yīng)該能夠按幾個(gè)不同的維度進(jìn)行切片。該工具應(yīng)該完成查明潛在問題的大部分艱苦工作。具有智能默認(rèn)值的工具將使這變得容易,因?yàn)樗鼘⒁远喾N粒度設(shè)置您需要的監(jiān)視器組合。
您不僅應(yīng)該查看用于監(jiān)控的工具,還應(yīng)該查看用于集中日志記錄的工具。我提出集中日志記錄也是因?yàn)楸O(jiān)視器總是以某種方式聚合。他們非常擅長(zhǎng)展示趨勢(shì)和整體健康狀況。但在某些時(shí)候,您需要深入了解到底發(fā)生了什么。您不應(yīng)該需要訪問多個(gè)日志字段來查看跨多個(gè)微服務(wù)的請(qǐng)求的故事。相反,您應(yīng)該能夠在一處查看來自多個(gè)服務(wù)的日志。
Retrace 具有監(jiān)控和集中日志記錄功能,但這不是必需的。只要您有辦法將您的日志與您在監(jiān)視器中看到的內(nèi)容(例如,應(yīng)用程序 ID和時(shí)間戳)相關(guān)聯(lián),您的監(jiān)控工具就可以與您的日志記錄工具分開。(在第 5 步中,我們將討論如何制作強(qiáng)關(guān)聯(lián) ID。)
一個(gè)好的工具將有一些方法可以自動(dòng)檢測(cè)您的服務(wù)。通常,這意味著您必須添加一個(gè)庫(kù)并配置一些屬性以連接到正確的服務(wù)器。確保該工具支持您選擇的語(yǔ)言和框架的檢測(cè)。否則,您將不得不在框架的請(qǐng)求生命周期中尋找接縫來檢測(cè)自己。一些框架,例如Spring Boot,帶有內(nèi)置的監(jiān)控?cái)U(kuò)展。
即使使用自動(dòng)檢測(cè),大多數(shù)工具也應(yīng)該讓您自定義。這讓您可以到達(dá)應(yīng)用程序中那些從不太理想的環(huán)境演變而來的奇怪地方。
檢測(cè)和配置完成后,在本地運(yùn)行您的服務(wù),指向您的監(jiān)控服務(wù)器。確保數(shù)據(jù)實(shí)際上是從服務(wù)進(jìn)入您的工具。如果您正在使用 Retrace,這里有一篇很棒的文章,描述了如何驗(yàn)證您的應(yīng)用程序正在運(yùn)行。
即使在您連接并運(yùn)行所有內(nèi)容之后,仍然建議您做一件事。使用微服務(wù),很難通過系統(tǒng)跟蹤事件的蹤跡。這使得跨服務(wù)錯(cuò)誤幾乎不可能被發(fā)現(xiàn)。
建議在您的每個(gè)服務(wù)中實(shí)施跟蹤 ID。您需要以標(biāo)準(zhǔn)方式跨服務(wù)執(zhí)行此操作,以便一個(gè)跟蹤 ID 可以在整個(gè)系統(tǒng)中流動(dòng)。OpenTracing 標(biāo)準(zhǔn)是實(shí)現(xiàn)這一目標(biāo)的好方法,許多框架都有檢測(cè)庫(kù)來支持它。有了這個(gè),您將能夠輕松地跨多個(gè)服務(wù)查詢?nèi)罩荆⑻剿鲉栴}如何影響您的軟件。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743