目錄
1、簡介:
(1)Sleuth簡介:
Spring Cloud Sleuth實現了一種分佈式的服務鏈路跟蹤解決方案,通過使用Sleuth可以讓我們快速定位某個服務的問題。簡單來說,Sleuth相當於調用鏈監控工具的客戶端,集成在各個微服務上,負責產生調用鏈監控數據。
Span(跨度):Span是基本的工作單元。Span包括一個64位的唯一ID,一個64位trace碼,描述信息,時間戳事件,key-value 註解(tags),span處理者的ID(通常爲IP)。最開始的初始Span稱爲根span,此span中span id和 trace id值相同。
Trance(跟蹤):包含一系列的span,它們組成了一個樹型結構。
Annotation(標註):用於及時記錄存在的事件。常用的Annotation如下:
CS(Client Sent客戶端發送):客戶端發送一個請求,表示span的開始;
SR(Server Received服務端接收):服務端接收請求並開始處理它。(SR - CS)等於網絡的延遲;
SS(Server Sent服務端發送):服務端處理請求完成,開始返回結束給服務端。(SR - SS)表示服務端處理請求的時間;
CR(Client Received客戶端接收):客戶端完成接受返回結果,此時span結束。(CR - CS)表示客戶端接收服務端數據的時間;
(2)ZipKin簡介:
通過Sleuth產生的調用鏈監控信息,讓我們可以得知微服務之間的調用鏈路,但是監控信息只輸出到控制檯始終不太方便查看。所以我們需要一個圖形化的工具,這時候就輪到zipkin出場了。Zipkin是Twitter開源的分佈式跟蹤系統,主要用來收集系統的時序數據,從而追蹤系統的調用問題。
ZipKin結構圖如下:
2、安裝ZipKin服務端:
(1)安裝簡介:
官方說明安裝操作:https://zipkin.io/pages/quickstart.html
(2)源碼獲取jar包:
A、源碼下載:
源碼下載地址:https://github.com/openzipkin/zipkin/releases
B、源碼解壓;
將下載好的源碼解壓到指定文件夾中。
C、源碼打包:
使用idea開發工具打開解壓好的zipkin源碼項目,然後進行package。如果運行出現錯誤,請看下面錯誤進行處理。
如果在idea中直接打開源碼,然後執行package命令,如果出現以下錯誤信息:
Failed to execute goal com.mycila:license-maven-plugin:3.0
請在idea中打開terminal窗口,然後執行命令:mvn license:format
然後進行下面的打包操作:
在idea中使用maven進行打包,並且設置跳過test進行打包;
或者在windows的cmd窗口通過cd進入到源碼解壓文件夾,然後執行打包命令:
mvn -DskipTests clean install(此方式比較快)。
D、尋找jar包:
在打包命令成功執行完畢後,在zipkin源碼包中的zipkin-server模塊下的target中會有三個jar包:只要其中的exec結尾的jar。
(3)下載獲取jar包:
到Maven中央倉庫下載最新版本的jar包:
https://search.maven.org/remote_content?g=io.zipkin.java&a=zipkin-server&v=LATEST&c=exec
(4)運行包部署:
將打包好的可運行jar放到指定的安裝文件夾中即可。
(5)windows啓動運行包:
zipkin控制檯是一個標準的 SpringBoot 應用,因此首先進入到部署zipkin的文件夾中,然後直接以 SpringBoot 的方式運行 jar 包即可。啓動命令:
java -Dserver.port=8180 -jar zipkin-server.jar
(6)windows關閉運行包:
直接將啓動zipkin的命令窗口關閉即可。
(7)linux啓動運行包:
zipkin控制檯是一個標準的 SpringBoot 應用,因此首先進入到部署zipkin的文件夾中,然後直接以 SpringBoot 的方式運行 jar 包即可。生產環境一般是部署在linux上,因此在啓動控制檯的時候需要後臺啓動,後臺啓動命令:
nohup java -Dserver.port=8180 -jar zipkin-server.jar &
(8)linux關閉運行包:
A、查找服務進程ID:
在linux中執行查找進行ID命令:
ps -ef | grep zipkin
B、殺死服務進程ID:
在linux中執行殺死進行ID的命令:
kill -9 進程ID號