當前位置:
首頁 > 最新 > 利用Zipkin追蹤Mysql資料庫調用鏈

利用Zipkin追蹤Mysql資料庫調用鏈


概述

在前面:微服務調用鏈追蹤中心搭建一文中我們利用Zipkin搭建了一個微服務調用鏈的追蹤中心,並且模擬了微服務調用的實驗場景。利用Zipkin的庫Brave,我們可以收集一個客戶端請求從發出到被響應經歷了哪些組件哪些微服務請求總時長每個組件所花時長等信息。

本文將講述如何利用Zipkin對Mysql資料庫的調用進行追蹤,這裡同樣藉助OpenZipkin庫Brave來完成。


ZipkinTool是在《微服務調用鏈追蹤中心搭建》一文中編寫的與Zipkin通信的工具組件,利用其追蹤微服務調用鏈的,現在我們想追蹤Mysql資料庫調用鏈的話,可以擴展一下其功能。

pom.xml添加依賴:

在ZipkinConfiguration類中添加MySQLStatementInterceptorManagementBean


依然繼承前文:《微服務調用鏈追蹤中心搭建》,我們改造一下文中的ServiceC這個微服務,在其中添加與Mysql資料庫的交互。

pom.xml中添加JDBC和Mysql依賴

application.properties中添加Mysql連接的配置

Controller中添加JdbcTemplate訪問資料庫的代碼

1. 啟動Mysql容器

2. 再啟動一個Mysql容器,接入其中做一些設置

首先進入mysql命令行

接下來創建資料庫zipkin: 用於存放Zipkin所收集的數據

這裡創建了三個數據表。

該Sql文件可以從以下鏈接獲得:https://github.com/openzipkin/zipkin/blob/master/zipkin-storage/mysql/src/main/resources/mysql.sql

Sql腳本執行完成後,可以看到zipkin相關的三個表已經建成:

創建資料庫test:用作測試資料庫

這裡插入了一條數據用於實驗。



在瀏覽器中輸入:localhost:8883/mysqltest,如果看到以下輸出,就可以證明資料庫調用操作已經成功了!


瀏覽器輸入:http://localhost:9411/zipkin/

打開Zipkin Web UI,點擊服務名下拉列表能看見已經成功識別了Mysql資料庫調用服務

選中mysqlservice後,點擊Find Traces

可以看到首次查詢Mysql的調用鏈追蹤信息,有很多

隨便點開某一個查看:

接下來瀏覽器中再次輸入:localhost:8883/mysqltest

目的是再次觸發Mysql的調用,然後再次Find Traces,可以看到追蹤數據類似下圖:包含兩次Mysql的query動作:

點開第一個query查看,其實際上是在嘗試連接Mysql資料庫

點開第二個query查看,發現這裡才是實際查詢業務

從圖形化界面上可以清楚地知道每個階段的詳細步驟與耗時,因此可以用來分析哪個SQL語句執行相對較慢。


作者一些其他容器化、微服務化方面的文章:

關注作者公眾號CodeSheep,分享更多務實能看懂可復現的原創文章:


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CodeSheep 的精彩文章:

微服務調用鏈追蹤中心搭建

TAG:CodeSheep |