分布式環境下如何快速定位問題

2021-10-10 14:18:27 字數 572 閱讀 3802

分布式服務中存在以下一條呼叫鏈

當服務a出問題的時候,服務b、c、d都是可能導致問題的服務,不太好確定到底是哪一步引發的問題。通過跨部門日誌人肉去追蹤的話,需要所有的服務都加日誌,比較慢。

合理封裝異常資訊

一款優秀的 rpc 框架要對異常進行詳細地封裝,分類,每類異常都要有明確的異常標識碼,並整理成乙份簡明的文件。

使用方可以快速地通過異常標 識碼在文件中查閱,從而快速定位問題,找到原因;並且異常資訊中要包含排查問題時所需 要的重要資訊,比如服務介面名、服務分組、呼叫端與服務端的 ip,以及產生異常的原因。

服務提供方提供的服務的業務邏輯也要封裝自己的業務異常資訊,從而讓服務呼叫方也可以通過異常資訊快速地定位到問題。

分布式鏈路跟蹤系統

將一次分布式請求還原為乙個完整的呼叫鏈路,可以在整個呼叫鏈路中跟蹤到這一次分布式請求的每乙個環節的呼叫情況,比如呼叫是否成功,返回什麼異常,呼叫的哪個服務節點以及請求耗時等等。

trace 與 span

兩件事情

分布式環境下的解決方案 分布式鎖

分布式鎖,也就是在多程序情況下的鎖。需要有儲存鎖的空間,並且鎖的空間是可以訪問到的。鎖需要被唯一標識。鎖要有至少兩種狀態。儲存空間 鎖是乙個抽象的概念,鎖的實現,需要依存於乙個可以儲存鎖的空間。在多執行緒中是記憶體,在多程序中是記憶體或者磁碟。更重要的是,這個空間是可以被訪問到的。多執行緒中,不同的...

分布式環境下的session共享

session共享在當前這個網際網路背景下,已經不是乙個新鮮的話題了,而且如何解決session共享其實也有很多非常成熟的方案 伺服器實現的session複製或session共享,這型別的共享session是和伺服器緊密相關的 我們在web伺服器之間增加了會話資料的同步,通過同步就保證了不同web伺...

spark分布式環境搭建(2)分布式環境準備

ps 我已經複製好了 開啟三颱機器,它們的環境都是一樣的 是複製得到的集群 目標 修改三颱機器的hostname修改三颱機器的ip修改三颱機器的hosts三颱機器做免密登入 vim etc hostname 修改三颱機器的網路 vim etc sysconfig network scripts if...