[Zipkin](http://zipkin.io/)是 Twitter 开源的分布式跟踪系统,基于 Dapper 的论文设计而来。它的主要功能是收集系统的时序数据,从而追踪微服务架构的系统延时等问题。Zipkin 还提供了一个非常友好的界面,帮助我们分析追踪数据。
我们需要将前面 Sleuth 采集到的数据发送给 Zipkin 服务端。Zipkin 分析之后展示在界面上。
因此,我们需要启动 Zipkin Server。这里我们使用编译好的可运行 Jar 包直接启动。使用[https://search.maven.org/remote\_content?g=io.zipkin.java&a=zipkin-server&v=LATEST&c=exec](https://search.maven.org/remote_content?g=io.zipkin.java&a=zipkin-server&v=LATEST&c=exec)下载最新版本的 Zipkin Server,例如`zipkin-server-2.12.9-exec.jar`。
或者你也可以直接下载我们准备好的 jar 包:
~~~bash
wget https://labfile.oss.aliyuncs.com/courses/1360/zipkin-server-2.12.9-exec.jar
~~~
* 启动 Zipkin Server
~~~bash
java -jar zipkin-server-2.12.9-exec.jar
~~~
* 访问`http://localhost:9411`,即可看到 Zipkin Server 的首页。
Zipkin UI 如下图所示:

接着,为我们上面步骤的用户服务整合 Zipkin,使其能够把数据发送给 Zipkin Server。
* 在用户服务中添加依赖:
~~~xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-sleuth-zipkin</artifactId>
</dependency>
~~~
* 在`application.yml`中添加配置:
~~~yml
spring:
......
zipkin:
base-url: http://localhost:9411
sleuth:
sampler:
probability: 1.0
......
~~~
* 测试运行
启动微服务,访问`http://localhost:8000/users/2`,然后浏览器访问`http://localhost:9411`,可看到类似如下界面:

点击左下角的 spans:

继续点击详情:

上面的图已经展示了该次请求的耗时。如果你有多个应用,Zipkin 将会展示每个应用消耗了多少时间,蓝色表示请求正常,红色表示请求失败。
- 微服务开发框架 SpringCloud
- 单体应用
- 如何解决单体应用架构中存在的问题
- 如何实现微服务架构以及技术选型
- Spring Cloud 特点
- 开始使用 Spring Cloud 实战微服务
- 快速搭建开发脚手架
- 编写服务提供者-用户微服务
- 编写服务消费者【电影微服务】
- 整合 Spring Boot Actuator
- 开始整合
- 微服务注册与发现
- 编写服务发现服务
- 注册微服务至 Eureka Server
- 更新服务提供者 (用户微服务)
- 更新服务消费者 (电影微服务)
- 查看注册结果
- Ribbon 客户端负载均衡
- Ribbon 简介
- 引入 Ribbon
- Ribbon 入门
- Feign 声明式 REST 调用
- 改造项目
- Hystrix 容错处理
- 实现容错的手段
- Hystrix 简介
- 开始使用
- 测试
- Zuul 网关
- 网关是什么
- Spring Cloud Zuul 介绍
- Zuul 入门使用
- 网关测试
- Spring Cloud Config 配置管理
- 配置中心的作用
- Spring Cloud Config 简介
- Spring Cloud Config 使用
- Sleuth 与 Zipkin 结合图形化展示
- 分布式追踪相关基础概念
- Spring Cloud Sleuth 介绍及使用
- Zipin 简介
- Docker 入门
- 云原生概念
- Docker 容器介绍
- Docker 常用命令
- 微服务运行在 Docker 之上
- Dockerfile 及其常见指令介绍
- 改造 Eureka Server 微服务
- Docker Compose 编排微服务
- 安装 Compose
- Compose 快速入门
- Compose 编排 SpringCloud微服务
- 将 Eureka 等微服务运行在 Docker 容器中
- Docker-Compose 编排文件的编写
- 通过 Docker Compose 启动、停止
- Compose编排Spring Cloud微服务2
- Docker-Compose 来部署一个双节点的 Eureka 集群
