Zipkin是一種分布式跟蹤系統(tǒng)仲闽,它有助于收集解決微服務(wù)架構(gòu)中得延遲問題所需的時(shí)序數(shù)據(jù)棋傍,它管理這些數(shù)據(jù)的收集和查找倔毙。
下載 官方推薦直接下載打包好的應(yīng)用冻璃,建議使用docker鏡像或者jar
使用官方一鍵腳本
curl -sSL https://zipkin.io/quickstart.sh | bash -s
java -jar zipkin.jar
docker
docker run -d -p 9411:9411 openzipkin/zipkin
訪問
任一方式啟動(dòng)后侮穿,訪問 http://localhost:9411/zipkin/ 歌径,如下圖
項(xiàng)目集成
2.pom.xml 配置
增加如下依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
<version>2.0.3.RELEASE</version>
</dependency>
如果項(xiàng)目中包含 aspectjweaver 這個(gè)jar ,需要指定jar包版本為1.8.10亲茅,否則項(xiàng)目啟動(dòng)會(huì)出錯(cuò)
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.10</version>
</dependency>
配置采樣等參數(shù)
#zipkin配置 # 指定了 Zipkin 服務(wù)器的地址
spring.zipkin.base-url = http://localhost:9411/
#采樣率 1.0表示全部采樣
spring.sleuth.sampler.probability = 1.0
服務(wù)調(diào)用以后回铛,就可以看到具體的調(diào)用請(qǐng)求時(shí)間,但是在這個(gè)過程中也碰到了一些問題
- 如果屏蔽一些接口記錄克锣,例如 健康檢查會(huì)產(chǎn)生大量的無用數(shù)據(jù)茵肃,影響查詢
- 如果使用mysql查詢會(huì)有一定的影響,官方也不建議使用
- 使用官方的jar后袭祟,無法進(jìn)行改造验残,滿足不了一些額外的需求
- 存儲(chǔ)數(shù)據(jù)安全規(guī)范等問題
如果使用ES進(jìn)行存儲(chǔ)(建議使用)
# STORAGE_TYPE 指定存儲(chǔ)類型 ES_HOSTS es ip 通過逗號(hào)隔開,可以使用多個(gè)巾乳,ES_USERNAME ES用戶名 ES_PASSWORD ES密碼 ES_INDEX 自定義存儲(chǔ)索引
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