SpringCloud 使用Zipkin進(jìn)行分布式跟蹤

2023-11-30 15:31 更新

本示例有七個(gè)spans。如果轉(zhuǎn)到Zipkin中的跟蹤,則可以在第二個(gè)跟蹤中看到此數(shù)字,如下圖所示:

痕跡

但是,如果選擇特定的跟蹤,則可以看到四個(gè)spans,如下圖所示:

跟蹤信息傳播

 選擇特定跟蹤時(shí),您會(huì)看到合并的spans。這意味著,如果有兩個(gè)spans發(fā)送到Zipkin,并且?guī)в小胺?wù)器已接收和服務(wù)器已發(fā)送”或“客戶端已接收和客戶端已發(fā)送”注釋,它們將顯示為單個(gè)跨度。

在這種情況下,為什么七個(gè)spans和四個(gè)spans之間有區(qū)別?

  • 一個(gè)跨度來自http:/start跨度。它具有服務(wù)器已接收(sr)和服務(wù)器已發(fā)送(ss)批注。
  • service1service2http:/foo端點(diǎn)的RPC調(diào)用中有兩個(gè)spans。客戶發(fā)送(cs)和客戶接收(cr)事件在service1端發(fā)生。服務(wù)器已接收(sr)和服務(wù)器已發(fā)送(ss)事件在service2端發(fā)生。這兩個(gè)spans構(gòu)成一個(gè)與RPC調(diào)用相關(guān)的邏輯范圍。
  • service2service3http:/bar端點(diǎn)的RPC調(diào)用中有兩個(gè)spans。客戶發(fā)送(cs)和客戶接收(cr)事件在service2端發(fā)生。服務(wù)器已接收(sr)和服務(wù)器已發(fā)送(ss)事件在service3端發(fā)生。這兩個(gè)spans構(gòu)成一個(gè)與RPC調(diào)用相關(guān)的邏輯范圍。
  • service2service4http:/baz端點(diǎn)的RPC調(diào)用中有兩個(gè)spans。客戶發(fā)送(cs)和客戶接收(cr)事件在service2端發(fā)生。服務(wù)器已收到(sr)和服務(wù)器已發(fā)送(ss)事件在service4端發(fā)生。這兩個(gè)spans構(gòu)成一個(gè)與RPC調(diào)用相關(guān)的邏輯范圍。

因此,如果我們計(jì)算物理量spans,則有一個(gè)來自http:/start的實(shí)體,兩個(gè)來自service1的實(shí)體,調(diào)用service2,兩個(gè)來自service2的實(shí)體,調(diào)用service3,還有兩個(gè)來自service2致電service4。總而言之,我們總共有七個(gè)spans。

從邏輯上講,我們看到四個(gè)跨度的信息,因?yàn)槲覀冇幸粋€(gè)跨度與到service1的傳入請(qǐng)求有關(guān),而有三個(gè)spans與RPC調(diào)用有關(guān)。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)