在前面的文章中,我们已经成功的使用Zipkin收集了项目的调用链日志。但是呢,由于我们收集链路信息时采用的是http请求方式收集的,而且链路信息没有进行保存,ZipkinServer一旦重启后就会所有信息都会消失了。基于性能的考虑,我们可以对它进行改造,使用SpringCloud Stream进行消息传递,使用Elasticsearch进行消息的存储。
参考文章
Zipkin全链路监控
SpringCloud-Stream整合RabbitMQ
改造ZipkinServer
1. 增加依赖
1 2 3 4 5 6 7 8 9 10
|
<dependency> <groupId>io.zipkin.java</groupId> <artifactId>zipkin-autoconfigure-collector-rabbitmq</artifactId> <version>2.11.8</version> </dependency> <dependency> <groupId>io.zipkin.java</groupId> <artifactId>zipkin-autoconfigure-storage-elasticsearch-http</artifactId> <version>2.8.4</version> </dependency>
|
2. 配置文件
增加rabbit和es的相关配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
zipkin: collector: rabbitmq: addresses: 10.0.20.132 port: 5672 username: root password: root virtual-host: /unicode-pay queue: zipkin storage: StorageComponent: elasticsearch type: elasticsearch elasticsearch: hosts: 10.0.20.25:9200 cluster: elasticsearch index: zipkin index-shards: 5 index-replicas: 1
|
至此ZipkinServer的配置就搞定了。
3. 客户端增加依赖
以下两个依赖任选其一就可以
1 2 3 4
|
<dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit</artifactId> </dependency>
|
1 2 3 4
|
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency>
|
4. 客户端增加mq的相关配置
1 2 3 4 5 6 7 8 9 10 11 12
|
spring: sleuth: sampler: probability: 1.0 rabbitmq: addresses: 10.0.20.132 port: 5672 username: root password: root zipkin: rabbitmq: queue: zipkin
|
注意要把以下配置去掉哦
1 2 3 4 5
|
spring: zipkin: base-url: http:
|
现在环境已经搭建完毕了,根据你的采样频率看一看结果如何吧
GitHub地址:https://github.com/shiyujun/spring-cloud-demo。代码所在模块:cloud-demo-zipkin-server,cloud-demo-consumer-feign-hystrix,cloud-demo-provider
如果对您有所帮助,请记得帮忙点一个star哦
本文出自http://zhixiang.org.cn,转载请保留。