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