1. 程式人生 > >分散式跟蹤系統-Zipkin

分散式跟蹤系統-Zipkin

分散式跟蹤系統-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