在微服務開發如火如荼的今天,微服務也引入了一些額外問題。微服務開發&運維過程當中會常常調用到其餘服務暴露的接口,項目足夠大時,內部調用會很是複雜,這種複雜性會致使很難去定位問題,出現問題的時候容易互相推諉進而致使效率低下,因此須要在微服務構建的系統中引入服務調用鏈路追蹤工具,方便開發人員快速定位問題。java
目前市面上比較流行的鏈路追蹤工具備Zipkin、CAT、Pinpoint、SkyWalking等等mysql
截止至2020/04/20linux
類別 | SkyWalking | CAT | Zipkin | Pinpoint |
---|---|---|---|---|
可視化界面 | 是 | 是 | 是 | 是 |
報表 | 豐富 | 很豐富 | 近似於無 | 有 |
接入方式 | 非侵入式 | 侵入式 | 侵入式 | 非侵入式 |
UI是否友好 | 是 | 是 | 否 | 是 |
顆粒度 | 方法級 | 代碼級 | 接口級 | 方法級 |
數據存儲 | ES,H2 | mysql,hdfs | ES,mysql,Cassandra,內存 | Hbase |
社區活躍度 | 13.1k star | 13.1k star | 12.7k star | 10.2k star |
實現方式 | 攔截請求,發送(HTTP,mq)數據至zipkin服務 | java探針,字節碼加強 | java探針,字節碼加強 | 代碼埋點(攔截器,註解,過濾器等) |
ElasticSearch7 API變動比較多,故官網拆分出兩個包,可根據ElasticSearch版本選擇下載
下載頁
SkyWalking 7.0.0
SkyWalking 7.0.0-ES7版本web
將下載好的壓縮包解壓至用戶目錄spring
修改config/application.yml修改配置,因爲我本地安裝的是ES7版本,故將儲存引擎由默認的H2修改成ElasticSearch7
sql
啓動SkyWalking以前確保ElasticSearch服務啓動成功,而後執行oapService.bat(linux下執行oapService.sh)再執行webappService.bat(webappService.sh),或者直接執行startup.bat(startup.sh)apache
確保啓動無誤以後瀏覽器訪問localhost:8080)瀏覽器
端口可在webapp/webapp.yml中修改app
將skywalking根目錄下的agent目錄拷貝至用戶目錄,新建一個spring-boot項目,
在啓動JVM參數中添加如下配置運維
-javaagent:D:\Apache-Skywalking\agent\skywalking-agent.jar -Dskywalking.agent.service_name=你的項目名
啓動項目,並訪問一個接口能夠看到以下拓撲圖
本地新建了一個服務,若是是微服務項目服務間調用會很是明顯的展現出來