分布式06-Spring Cloud Sleuth & zipkin 链路追踪

一.Zipkin 是什么?

 Zipkin的官方介绍:https://zipkin.apache.org/

 Zipkin是一款开源的分布式实时数据追踪系统(Distributed Tracking System),基于 Google Dapper的论文设计而来,由 Twitter 公司开发贡献。其主要功能是聚集来自各个异构系统的实时监控数据。分布式跟踪系统还有其他比较成熟的实现,例如:Naver的Pinpoint、Apache的HTrace、阿里的鹰眼Tracing、京东的Hydra、新浪的Watchman,美团点评的CAT,skywalking等。

二.为什么用 Zipkin?

    随着互联网发展越来越壮大,系统也越来越复杂。分布式系统中系统之间的互相调用也越来越错综复杂,这时我们排查一个服务来龙去脉也越加困难,甚至我们都很难定位到哪个服务拖慢了整体的响应速度。 Zipkin分布式跟踪系统就能很好的解决这样的问题。    

1.zipkin帮我们定位系统用了哪些服务

2.服务之间是怎么互相依赖的

3.请求的执行路径

4.服务之间调用的耗时

三.链路追踪的原理

分布式06-Spring Cloud Sleuth & zipkin 链路追踪

每个请求会生成一个TraceId(可以理解一条链路的ID)串联每次SpanId形成一条完整的链路。

1.Span :基本的工作单位‘
2.Trace :一组Span组成的树形结构(链路)
3.Clent Sent 客户端发起请求的时间,比如 dubbo 调用端开始执行远程调用之前
4.Client Receive 客户端收到处理完请求的时间。
5.Server Receive 服务端处理完逻辑的时间。
6. Server Receive 服务端收到调用端请求的时间。

四.搭建Zipkin服务

docker pull openzipkin/zipkin:2.17.2 
docker run -p 9411:9411 openzipkin/zipkin:2.17.2
http://127.0.0.1:9411 

分布式06-Spring Cloud Sleuth & zipkin 链路追踪

五.搭建Zipkin客户端

引入maven包

compile 'org.springframework.cloud:spring-cloud-starter-zipkin:2.2.2.RELEASE'

application.properties

spring.zipkin.base-url=http://127.0.0.1:9411/
spring.zipkin.sender.type=web#用http去请求zipkin 也可以配置Mq
spring.sleuth.sampler.probability=0.1

6.测试

EUREKA-SERVER  的 getport接口去调用 EUREKA-SERVER 的getPort接口,中间使用 向rabbitmq 推送2条数据

分布式06-Spring Cloud Sleuth & zipkin 链路追踪

分布式06-Spring Cloud Sleuth & zipkin 链路追踪

分布式06-Spring Cloud Sleuth & zipkin 链路追踪

点击进去可以看到完整的链路信息和每个步骤的耗时

分布式06-Spring Cloud Sleuth & zipkin 链路追踪

来源:锌闻网

上一篇:32、Spring Cloud 服务跟踪总结


下一篇:zipkin 连接mysql启动