zipkin架构介绍

zipkin架构介绍

Zipkin简介
Zipkin是 Twitter 的一个开源项目,基于 Google Dapper实现。可以使用它来收集各个服务器上请求链路的跟踪数据,并通过它提供的 REST API 接口来辅助我们查询跟踪数据以实现对分布式系统的监控程序,从而及时地发现系统中出现的延迟升高问题并找出系统性能瓶颈的根源。除了面向开发的API接口之外,它也提供了方便的 UI 组件帮助我们直观的搜索跟踪信息和分析请求链路明细,比如:可以查询某段时间内各用户请求的处理时间等。

Zipkin architecture

上图展示了Zipkin的基础架构,主要由4个核心组件构成:
Collector:收集器组件,它主要用于处理从外部系统发送过来的跟踪信息,将这些信息转换为Zipkin内部处理的Span格式,以支持后续的存储、分析、展示等功能。

Storage:存储组件,它主要对处理收集器接收到的跟踪信息,默认会将这些信息存储在内存中,我们也可以修改此存储策略,通过使用其他存储组件将跟踪信息存储到 数据库或es 中。

RESTful API:API组件,它主要用来提供外部访问接口。比如给客户端展示跟踪信息,或是外接系统访问以实现监控等。

Web UI:UI组件,基于API组件实现的上层应用。通过UI组件用户可以方便而有直观地查询和分析跟踪信息。

zipkin相关概念

Trace、Span、annotations注释

1、Trace
一次服务调用追踪链路,由一组Span组成。需在web总入口处生成TraceID,并确保在当前请求上下文里能访问到

2、Span
表示一次完整RPC调用,是由一组Annotation和BinaryAnnotation组成。是追踪服务调用的基本结构,多span形成树形结构组合成一次Trace追踪记录。Span是有父子关系的,比如:Client A、Client A -> B、B ->C、C -> D、分别会产生4个Span。Client A接收到请求会时生成一个Span A、Client A -> B发请求时会再生成一个Span A-B,并且Span A是 Span A-B的父节点:

traceId:标记一次请求的跟踪,相关的Spans都有相同的traceId;
id:span id;
name:span的名称,一般是接口方法的名称;

parentId:
可选的id,当前Span的父Span id,通过parentId来保证Span之间的依赖关系,
如果没有parentId,表示当前Span为根Span;

timestamp:
Span创建时的时间戳,使用的单位是微秒(而不是毫秒),所有时间戳都有错误,
包括主机之间的时钟偏差以及时间服务重新设置时钟的可能性,
出于这个原因,Span应尽可能记录其duration;

duration:持续时间使用的单位是微秒(而不是毫秒);

3、annotations注释:用于及时记录事件;有一组核心注释用于定义RPC请求的开始和结束;

  • cs - Client Sent -客户端发起一个请求,这个annotion描述了这个span的开始

  • sr - Server Received -服务端获得请求并准备开始处理它,如果将其sr减去cs时间戳便可得到网络延迟

  • ss - Server Sent -注解表明请求处理的完成(当请求返回客户端),如果ss减去sr时间戳便可得到服务端需要的处理请求时间

  • cr - Client Received -表明span的结束,客户端成功接收到服务端的回复,如果cr减去cs时间戳便可得到客户端从服务端获取回复的所有所需时间

什么时候生成
客户端发送Request、接受到Response、服务器端接受到Request、发送 Response时生成。Annotation属于某个Span,需把新生成的Annotation添加到当前上下文里Span的annotations数组里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Zip是一个开源的分布式跟踪系统,用于收集、存储和展示微服务架构中的请求链路追踪数据。通过集成Zipkin和Elasticsearch,可以将Zipkin的跟踪数据持久化到Elasticsearch中,便于后续的查询和分析。 在部署Zipkin和Elasticsearch之前,首先需要安装和配置Elasticsearch环境。可以使用Docker来快速搭建一个Elasticsearch容器,并指定相关的配置参数。在安装过程中,需要创建一个配置文件elasticsearch.yml,其中包含了一些必要的配置项,例如监听的IP地址、跨域配置等。 安装完Elasticsearch后,可以通过访问http://localhost:9200来验证是否安装成功。接下来,可以将Zipkin配置为使用Elasticsearch作为存储介质,将跟踪数据持久化到Elasticsearch中。具体的配置方式可以参考Zipkin的官方文档或者相关的博客文章。 通过集成Zipkin和Elasticsearch,可以更好地管理和分析微服务架构中的请求链路追踪数据,提供更好的性能监控和故障排查的能力。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [zipkin学习--08--Springboot 集成 Zipkin--持久化到elasticsearch](https://blog.csdn.net/ylx814056815/article/details/120258750)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [分布式日志分析系统(二):Zipkin介绍以及在Elasticsearch的部署](https://blog.csdn.net/sv2008337/article/details/81238773)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值