分散式跟蹤系統-Zipkin
阿新 • • 發佈:2019-01-03
分散式跟蹤系統-Zipkin
簡述
Zipkin是一個致力於收集分散式服務的時間資料的分散式跟蹤系統。
官方:https://zipkin.io/
原始碼地址:https://github.com/openzipkin/zipkin
Zipkin 四個元件:Collector(資料採集),Storage(資料儲存),API(搜尋),UI(資料展示)。
Zipkin提供了可插拔資料儲存方式:In-Memory,MySql, Cassandra, Elasticsearch
儲存方式示例
1、In-Memory
nohup java -jar zipkin.jar &
重啟資料丟失
2、Elasticsearch
1)設定環境變數
STORAGE_TYPE=elasticsearch
ES_HOSTS=http://ES的IP地址:9200
啟動ES;
nohup java -jar zipkin.jar &
SpringCloud
服務端
(1)匯入依賴
<dependency> <groupId>io.zipkin.java</groupId> <artifactId>zipkin</artifactId> <version>1.28.1</version> </dependency> <dependency> <groupId>io.zipkin.java</groupId> <artifactId>zipkin-server</artifactId> <version>1.28.1</version> </dependency> <dependency> <groupId>io.zipkin.java</groupId> <artifactId>zipkin-autoconfigure-ui</artifactId> <version>1.28.1</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-sleuth</artifactId> </dependency> <dependency> <groupId>io.zipkin.java</groupId> <artifactId>zipkin-autoconfigure-storage-elasticsearch-http</artifactId> <version>1.23.0</version> <optional>true</optional> </dependency>
(2) 新增配置
server.port=6666 spring.sleuth.enabled=false #取樣率,推薦0.1,百分之百收集的話儲存可能扛不住 spring.sleuth.sampler.percentage=1 zipkin.storage.StorageComponent=elasticsearch zipkin.storage.type=elasticsearch #可以做叢集,我用的本地測試沒有部署elastic叢集 zipkin.storage.elasticsearch.hosts=127.0.0.1:9200 zipkin.storage.elasticsearch.cluster=elasticsearch zipkin.storage.elasticsearch.index=zipkin zipkin.storage.elasticsearch.index-shards=5 zipkin.storage.elasticsearch.index-replicas=1 maxHttpHeaderSize=8192
(3)開啟
入口類添加註解
@EnableZipkinServer
客戶端
(1)添加註解
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-sleuth-zipkin</artifactId>
</dependency>
(2)新增配置
spring.zipkin.base-url=http://127.0.0.1:6666
spring.sleuth.sampler.percentage=1.0