zipkin分布式服务调用链跟踪系统
一般的,一个分布式服务跟踪系统,主要有三部分组成:
数据收集、数据存储和数据展示。根据系统大小不同,每一部分的结构又有一定变化。譬如,对于大规模分布式系统,数据存储可分为实时数据和全量数据两部分,实时数据用于故障排查(troubleshooting)
trace:是指我们从服务开始到服务执行的终点的一次完整的请求与相应。
span: 在一次完整的trace过程中,每调用一个服务都会记录调用信息与响应时间,这个就是span。
由此我们可以得出一个结论就是:一次trace由若干个span构成,sleuth是用于调用链追踪,通过sleuth我们可以轻易的追踪到trace经过了哪几个服务,每个服务花费的时间等,而zipkin是一个开源的追踪系统,它负责收集,存储数据并展示给用户。Zipkin提供了可插拔数据存储方式:
In-Memory
(默认)
JDBC(MySql)
如果采集数据量很大的话,查询速度会比较慢
Cassandra
zipkin最初始内建的存储(扩展性好、schema灵活)
Elasticsearch
被设计用于大规模,存储形式为json