Zipkin是一種分布式跟蹤系統,它有助于收集解決微服務架構中得延遲問題所需的時序數據,它管理這些數據的收集和查找。
下載 官方推薦直接下載打包好的應用,建議使用docker鏡像或者jar
使用官方一鍵腳本
curl -sSL https://zipkin.io/quickstart.sh | bash -s
java -jar zipkin.jar
docker
docker run -d -p 9411:9411 openzipkin/zipkin
訪問
任一方式啟動后,訪問 http://localhost:9411/zipkin/ ,如下圖
zipkin
項目集成
2.pom.xml 配置
增加如下依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
<version>2.0.3.RELEASE</version>
</dependency>
如果項目中包含 aspectjweaver 這個jar ,需要指定jar包版本為1.8.10,否則項目啟動會出錯
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.10</version>
</dependency>
配置采樣等參數
#zipkin配置 # 指定了 Zipkin 服務器的地址
spring.zipkin.base-url = http://localhost:9411/
#采樣率 1.0表示全部采樣
spring.sleuth.sampler.probability = 1.0
服務調用以后,就可以看到具體的調用請求時間,但是在這個過程中也碰到了一些問題
- 如果屏蔽一些接口記錄,例如 健康檢查會產生大量的無用數據,影響查詢
- 如果使用mysql查詢會有一定的影響,官方也不建議使用
- 使用官方的jar后,無法進行改造,滿足不了一些額外的需求
- 存儲數據安全規范等問題
如果使用ES進行存儲(建議使用)
# STORAGE_TYPE 指定存儲類型 ES_HOSTS es ip 通過逗號隔開,可以使用多個,ES_USERNAME ES用戶名 ES_PASSWORD ES密碼 ES_INDEX 自定義存儲索引
STORAGE_TYPE=elasticsearch ES_HOSTS=172.16.28.56:9200,172.16.28.57:9200 ES_USERNAME=admin ES_PASSWORD=123456 ES_INDEX=zipkin-trace java -jar /zipkin.jar