# Spring Cloud Sleuth Zipkin(三)
通过 Zipkin 查看Sleuth 链路默认存于内存中,如果Zipkin重启,之前的链路信息将会丢失
则基于 Spring Cloud Sleuth Zipkin(一)
当访问量过大时,相关的链路数据也会过大时,尽可能考虑使用异步方式让Zipkin 接收且处理
Zipkin 支持MySQL, ElasticSearch 等存储
ElasticSearch 存储
准备环境
ElasticSearch, Kibana, RabbitMQ
Docker 拉取RabbitMQ 镜像
$ docker run -d --name rabbit \
-v /home/tester/data/docker/rabbitmq:/var/lib/rabbitmq \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
-p 15672:15672 \
-p 5672:5672 \
rabbitmq:3-management
client-service
及product-service
增加依赖及配置
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-rabbit</artifactId>
</dependency>
spring:
zipkin:
base-url: http://192.168.79.8:9411
# 发送数据类型,默认是Web
sender:
type: rabbit
sleuth:
sampler:
# 全部采样
probability: 1.0
rabbitmq:
host: 192.168.79.8
port: 5672
username: admin
password: admin
zipkin 绑定Elasticsearch 及 RabbitMQ
$ nohup java -jar zipkin.jar --zipkin.collector.rabbitmq.addresses=192.168.79.8:5672 \
--zipkin.collector.rabbitmq.username=admin --zipkin.collector.rabbitmq.password=admin \
--STORAGE_TYPE=elasticsearch --ES_HOSTS=http://192.168.79.8:9200 &
验证
发起请求 http://localhost:9001/product/1
及 http://localhost:9001/products
数据将会发送到RabbitMQ 默认zipkin
队列上,ZipKin 服务拉取数据直接存入到EleasticSearch 中