1.ZipKin介绍
Zipkin是一款开源的分布式实时数据追踪系统(Distributed Tracking System),基于 Google Dapper(https://bigbully.github.io/Dapper-translation/)的论文设计而来,由 Twitter 公司开发贡献。其主要功能是聚集来自各个异构系统的实时监控数据。分布式跟踪系统还有其他比较成熟的实现,例如:Naver的Pinpoint、Apache的HTrace、阿里的鹰眼Tracing、京东的Hydra、新浪的Watchman,美团点评的CAT,skywalking等。
2. ZipKin的意义
大型互联网公司为什么需要分布式跟踪系统?为了支撑日益增长的庞大业务量,我们会把服务进行整合、拆分,使我们的服务不仅能通过集群部署抵挡流量的冲击,又能根据业务在其上进行灵活的扩展。一次请求少则经过三四次服务调用完成,多则跨越几十个甚至是上百个服务节点。如何动态展示服务的链路?如何分析服务链路的瓶颈并对其进行调优?如何快速进行服务链路的故障发现?这就是服务跟踪系统存在的目的和意义。
3. 服务跟踪系统的要求
即使作为分布式系统的开发者,也很难清楚的说出某个服务的调用链路,况且服务调用链路还是动态变化的,这时候只能咬咬牙翻代码了。接下来,我们看看Zipkin是如何做到这一点的。在这之前,我们先来简单讨论一下分布式跟踪系统的设计要点,
第一点:对应用透明、低侵入。为什么说这一点最重要?