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

全局事務ID:實現分佈式事務一致性的必備良藥

請求ID:requestId,seesionId,標示一個請求或者一次會話的生命週期

身份證ID:代表你在中國的唯一標示

學號監獄號:你在某個機構的特殊代號

分佈式全鏈路ID:一次在代碼裏留下到此一遊的留念

等等。。。。

 

TraceId 作用

標示一次調用的上下文ID,通過此ID可以獲悉你所做事情的足跡鏈。

譬如可以:

統計走過的每個方法的耗時

獲取你自己對自己説的話(自己打得日誌)

排查錯誤請求老前輩時的溝通密語

紀錄開始和結束,保存此生所有事蹟

等等。。。。

 

TraceId 實現

鏈路 指標 CNI SNR EsN0_線程池

  • 負載均衡:譬如 nginx,初始化 traceId 放入header
  • web request:通過 fliter 獲取 header的traceId,無則初始化 traceId
  • rpc 調用:通過擴展機制傳遞 traceId,無則初始化 traceId
  • 定時任務 @Schedule:通過 註解切面@TraceId, 初始化 traceId
  • 消息消費:通過消息傳遞協議添加traceID,無則使用註解切面@TraceId初始化 traceId
  • 線程池或者異步:封裝runnable和callable初始化傳遞traceId或者封裝線程池初始化傳遞traceId
  • 等等。。。

根據此traceId的基礎上,可以實現以上描述的耗時,調用鏈,錯誤排查等監控修復等需求。