0%

調用鏈監控

簡介

調用鏈監控是在微服務興起后才有的一種新流行的監控模式。

在我們傳統單體應用的項目中,不存在服務鏈/調用鏈的概念因沒有調用鏈監控的需求。

當我們開始微服務架構之后,很多服務變成分布式,在加上對服務進行了拆分,拆分之后,用戶的一個請求進來,會依次經過不同的服務節點進行處理,處理完成后再返回結果給用戶。那么在整個處理的鏈條中,如果有任何一個節點出現了延遲或者異常,都有可能導致問題,有的時候不同的服務節點甚至是由不同的團隊開發、部署在不同的服務器上,那么在這么錯綜復雜的環境下,我們想要排查出是鏈條中的具體哪個服務節點出了問題,其實并不容易。
因此,將這個請求經過的每一個節點都記錄下來,形成一個完整的調用鏈監控系統,一旦發生請求調用異常的情況,只需要去排查這個調用鏈日志就能很清楚看到出錯的環節在哪兒。

網絡拓撲圖

根據調用鏈監控中記錄的鏈路信息,生成一張網絡調用的拓撲圖。通過這張圖,可以知道系統中的各個服務之間的調用關系是怎樣的,以及系統依賴了哪些服務。并且還可以起到監控全局服務的作用,便于架構師掌握系統的狀態。

快速定位問題

微服務架構下,問題定位就變得非常復雜了,一個請求可能會經過多個服務節點,那么有這么一套調用鏈監控系統就能讓開發人員快速的定位到問題和相應模塊。

優化系統

我們記錄了請求在調用鏈上每一個環節的信息,可以通過這個來找出系統的瓶頸,做出針對性的優化。可以分析這個調用路徑是否合理,是否調用了不必要的服務節點,是否有更近、響應更快的服務節點。通過對調用鏈路的分析,我們就可以找出最優質的調用路徑,從而提高系統的性能。

幾個核心概念

Trace

Trace是指一次請求調用的鏈路過程,trace id 是指這次請求調用的ID。在一次請求中,會在請求最開始生成一個全局唯一的用于標識trace id,這個trace id在這次請求調用過程中無論經過多少個節點都會保持不變,并且在隨著每一層的調用不停的傳遞。最終,可以通過trace id將這一次用戶請求在系統中的路徑全部串起來。

Span

Span是指一個模塊的調用過程,一般用span id來標識。在一次請求的過程中會調用不同的節點/模塊/服務,每一次調用都會生成一個新的span id來記錄。這樣,就可以通過span id來定位當前請求在整個系統調用鏈中所處的位置,以及它的上下游節點分別是什么。

Annotation

是指附屬信息,可以用于附屬在每一個Span上自定義的數據。


此文章來自于網絡。

layicr 微信支付

微信支付

layicr 支付寶

支付寶