Zipkin 是一款开源的分布式实时数据追踪系统(Distributed Tracking System),基于 Google Dapper 的论文设计而来,由 Twitter 公司开发贡献。其主要功能是聚集来自各个异构系统的实时监控数据,用来追踪微服务架构下的系统延时问题。
Brave 是用来装备 Java 程序的类库,提供了面向 Standard Servlet、Spring MVC、Http Client、JAX RS、Jersey、Resteasy 和 MySQL 等接口的装备能力,可以通过编写简单的配置和代码,让基于这些框架构建的应用可以向 Zipkin 报告数据。同时 Brave 也提供了非常简单且标准化的接口,在以上封装无法满足要求的时候可以方便扩展与定制(下篇会讲)。
有关zipkin与Brave的详细介绍:http://www.tuicool.com/articles/f2qAZnZ
客户端发起请求到接收到服务端回应,先后经过四个阶段:客户端/消费者发起请求(cs)、服务端/生产者接收到请求(sr)、服务端/生产者发送应答(ss)和客户端/消费者接收到应答(cr)。Brave为Spring提供的Servlet拦截器(ServletHandlerInterceptor)及Rest(BraveClientHttpRequestInterceptor)模板的拦截器,向zipkin报告监控数据,其中,BraveClientHttpRequestInterceptor负责cs与cr的处理,ServletHandlerInterceptor负责sr与ss的处理。
git项目地址:https://github.com/blacklau/brave-webmvc-example (forked from openzipkin/brave-webmvc-example ,请忽略README.md说明)、
- 在项目的pom.xml中增加zipkin依赖的jar包:
<!-- 日志链路跟踪 -->
<dependency>
<groupId>