全鏈路跟蹤TraceId

數據庫主鍵:標示惟一一條數據,譬如惟一商品,惟一訂單nginx

全局事務ID:實現分佈式事務一致性的必備良藥
請求ID:requestId,seesionId,標示一個請求或者一次會話的生命週期
身份證ID:表明你在中國的惟一標示
學號監獄號:你在某個機構的特殊代號
分佈式全鏈路ID:一次在代碼裏留下到此一遊的留念
等等。。。。
 
TraceId 做用
標示一次調用的上下文ID,經過此ID能夠獲悉你所作事情的足跡鏈。
譬如能夠:
統計走過的每一個方法的耗時
獲取你本身對本身說的話(本身打得日誌)
排查錯誤請求老前輩時的溝通密語
紀錄開始和結束,保存今生全部事蹟
等等。。。。
 
TraceId 實現
  • 負載均衡:譬如 nginx,初始化 traceId 放入header
  • web request:經過 fliter 獲取 header的traceId,無則初始化 traceId
  • rpc 調用:經過擴展機制傳遞 traceId,無則初始化 traceId
  • 定時任務 @Schedule:經過 註解切面@TraceId, 初始化 traceId
  • 消息消費:經過消息傳遞協議添加traceID,無則使用註解切面@TraceId初始化 traceId
  • 線程池或者異步:封裝runnable和callable初始化傳遞traceId或者封裝線程池初始化傳遞traceId
  • 等等。。。
根據此traceId的基礎上,能夠實現以上描述的耗時,調用鏈,錯誤排查等監控修復等需求。
相關文章
相關標籤/搜索