1. 文章参考引用
2、服务端docker
2.1 持久化
- 支持多种持久化方式,默认是内存,另外支持mysql、elasticsearch
- 内存:持久化数据最大值为50万条,超过50万的删除旧数据
2.1.1 mysql持久化
- 官方说明支持版本5.7版本. 实测在5.7版本通过,不支持最新版的8.0.
docker run -d \
--restart always \
-p 9411:9411 \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_USER=root \
-e MYSQL_PASS=root \
-e MYSQL_HOST=192.168.6.1 \
-e STORAGE_TYPE=mysql \
-e MYSQL_DB=zipkin \
-e MYSQL_TCP_PORT=3306 \
--net host \
--name zipkin-mysql openzipkin/zipkin
2.1.2 elasticsearch持久化
- 官方说明支持版本5-7.x的elasticsearch, 在elasticsearch-7.10.2测试通过
docker run -d \
--restart always \
-p 9411:9411 \
-v /etc/localtime:/etc/localtime:ro \
-e STORAGE_TYPE=elasticsearch \
-e ES_HOSTS=http://192.168.6.136:9200 \
--name zipkin-kafka-esc openzipkin/zipkin
2.2 数据采集方式
- 服务端支持多种采集方式并存(kafka+http 验证通过),客户端可采用不同的采集方式发送
2.2.1 http为默认采集
2.2.2 kafka
- KAFKA_GROUP_ID,KAFKA_TOPIC默认是zipkin
docker run -d \
--restart always \
-p 9411:9411 \
-e KAFKA_BOOTSTRAP_SERVERS=192.168.6.138:9092 \
-e KAFKA_GROUP_ID=zipkin \
-e KAFKA_TOPIC=zipkin \
--name zipkin-kafka-esc openzipkin/zipkin
3. 客户端(spring-boot)
3.1 http方式采集
- 数据采集: client 把数据通过http请求发送到zipkin服务
- application.yml配置zipkin服务的地址
spring:
sleuth:
sampler:
probability: 1.0
zipkin:
base-url: http://192.168.6.137:9411
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
3.2 kafka方式采集
- 数据采集: client把数据推送到kafka;zipkin服务订阅kafka消息,再进行持久化
- application.yml 配置zipkin数据发送方式为kafka,配置kafka地址
spring:
sleuth:
sampler:
probability: 1.0
zipkin:
sender:
type: kafka
kafka:
topic: zipkin
kafka:
bootstrap-servers: 192.168.6.138:9092
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>