分布式鏈路
入門篇
簡介
分布式調(diào)用鏈,就是將一次分布式服務群的請求,按著順序還原成調(diào)用鏈路??梢郧宄牟榭匆淮畏植际秸埱蟮恼{(diào)用情況,比如各個節(jié)點上的耗時、請求具體打到了哪臺機器上、每個服務節(jié)點的請求狀態(tài)等等。
基本功能
故障快速定位
各個調(diào)用環(huán)節(jié)的性能分析:平均延時、QPS等
生成調(diào)用拓撲圖
根據(jù)這些功能,可以實現(xiàn)的使用場景
帶來的問題
如何標識一次請求
如何處理調(diào)用順序、調(diào)用分支,如1-1.1-2、1-1.2
開發(fā)如何不用感知
如何不影響系統(tǒng)性能
如何持久化日志信息
基本命令
三大組件
追蹤組件 -- 負責收集數(shù)據(jù)
問題
a. 最初的調(diào)用方是誰?
b. 請求在每個節(jié)點執(zhí)行多長時間、當前節(jié)點的調(diào)用方是誰?
c. 怎么把這些數(shù)據(jù)聯(lián)系起來?
解決
traceId, 標識一次請求
spanId, 標識一個節(jié)點
parentSpanId,標識父節(jié)點
Fegin調(diào)用添加相關header:<u>https://blog.csdn.net/baidu_30744225/article/details/111294383</u>
存儲組件 -- 存儲收集的數(shù)據(jù)
收集
AOP
攔截器
Javagent
存儲
Elk: 日志存儲
Mysql: 調(diào)用機器節(jié)點,之后查看拓撲圖,traceId實現(xiàn)分庫分表