微服務學習筆記 追蹤微服務呼叫

2021-10-08 21:57:17 字數 1340 閱讀 4022

微服務系統追蹤微服務呼叫,跟蹤記錄一次使用者請求經過哪些呼叫,經過哪些服務處理,並且記錄每一次呼叫所設計的服務的詳細資訊。如果發生呼叫失敗,可以根據日誌快速定位出現問題的環節。

一、作用

1.優化系統瓶頸

通過記錄呼叫經過的每一條鏈路上的耗時,快速定位系統中的瓶頸點。

2.優化鏈路呼叫

通過服務追鍾可以分析呼叫所經過的路徑,然後評估是否合理,通過對呼叫鏈路進行分析,可以跨資料中心的服務呼叫,從而進行優化,盡量規避這種情況。

3.生成網路拓撲

通過服務追蹤系統中記錄的鏈路資訊,可以生成一張系統的網路呼叫拓撲圖,它可以反映系統都依賴了哪些服務,以及服務之間的呼叫關係是什麼樣的,在網路拓撲圖上還可以把服務呼叫的詳細資訊也標出來,也能起到服務監控的作用。

4.透明傳輸資料

二、原理

核心原理就是呼叫鏈,通過乙個全域性唯一的id將分布在各個服務節點上的同一次請求串聯起來,從而還原原有的呼叫關係,可以追鍾系統問題、分析呼叫資料並統計各個系統指標。

traceid 是用於串聯某一次請求在系統中經過的所有路徑,spanid 是用於區分系統不同服務之間呼叫的先後關係,而 annotation 是用於業務自定義一些自己感興趣的資料,在上傳 traceid 和 spanid 這些基本資訊之外,新增一些自己感興趣的資訊。

三、實現

資料處理得需求分為兩類:實時計算需求和離線計算需求,實時計算需求對計算效率要求比較高,一般要求對收集的鏈路資料能夠在秒級別完成聚合計算,以供實時查詢。而離線計算需求對計算效率要求就沒那麼高了,一般能在小時級別完成鏈路資料的聚合計算即可,一般用作資料匯**計。

實時資料處理:

針對實時資料處理,一般採用 storm 或者 spark streaming 來對鏈路資料進行實時聚合加工,儲存一般使用 oltp 資料倉儲,比如 hbase,使用 traceid 作為 rowkey,能天然地把一整條呼叫鏈聚合在一起,提高查詢效率。

離線資料處理:

針對離線資料處理,一般通過執行 mapreduce 或者 spark 批處理程式來對鏈路資料進行離線計算,儲存一般使用 hive。

主要展示兩種圖形:呼叫鏈路圖和呼叫拓撲圖

微服務學習筆記 如何監控微服務呼叫

錯誤率一段時間內呼叫失敗的次數佔呼叫總次數的比率來衡量,比 如對於介面的錯誤率一般用介面返回錯誤碼為 503 的比率來表示。1 資料採集 考慮的問題就是取樣率,也就是採集資料的頻率。取樣率決定了監控的實時性與精確度,一般來說,取樣率越高,監控的實時性就越高,精確度也越高。但取樣對系統本身的效能也會有...

微服務學習筆記 什麼是微服務

martin fowler 簡而言之,微服務架構風格這種開發方法,是以開發一組小型服務的方式來開發乙個獨立的應用系統的。其中每個小型服務都執行在自己的程序中,並經常採用http資源api這樣輕量的機制來相互通訊。這些服務圍繞業務功能進行構建,並能通過全自動的部署機制來進行獨立部署。這些微服務可以使用...

微服務學習筆記

所以如果要搭建一套新的監控系統,建議可以考慮採用 graphite tick 或者 prometheus 其 中之一。過 graphite 還需要搭配資料採集系統比如 statsd 或者 collectd 使用,而且介面展 示建議使用 grafana 接入 graphite 的資料來源,它的效果要比...