ASP.NETCore实现整合Zipkin链路跟踪的方法-创新互联

这篇文章将为大家详细讲解有关ASP.NET Core实现整合Zipkin链路跟踪的方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

创新互联公司是专业的宁陵网站建设公司,宁陵接单;提供成都做网站、成都网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行宁陵网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

Zipkin简介

Zipkin是由Twitter开源的一款基于Java语言开发的分布式实时数据追踪系统(Distributed Tracking System),其主要功能是采集来自各个系统的实时监控数据。该系统让开发者可通过一个 Web 前端轻松的收集和分析数据,例如用户每次请求服务的处理时间等,可方便的监测系统中存在的瓶颈。它大致可以分为三个核心概念

  • 首先是上报端,它主要通过代码的形式集成到程序中,用于上报Trace数据到Collector端。
  • Collector负责接收客户端发送过来的数据,保存到内存或外部存储系统中,供UI展示。
  • 存储端可以是基于zipkin内存完全不依赖外部存储的In-Memory形式或依赖外部存储系统的形式,一般采用外部存储系统存储链路数据,毕竟内存有限。它可支持的存储数据库有MySQL、Cassandra、Elasticsearch。
  • UI负责展示采集的链路数据,及系统之间的依赖关系。

相对来说还是比较清晰的,如果用一张图表示整体架构的话,大致如下图所示(图片来源于网络)ASP.NET Core实现整合Zipkin链路跟踪的方法

在学习链路跟踪的过程中会设计到相关概念,我们接下来介绍链路跟踪几个相关的概念

  • TranceId,一般一次全局的请求会有一个唯一的TraceId,用于代表一次唯一的请求。比如我请求了订单管理系统,而订单管理系统内部还调用了商品管理系统,而商品管理系统还调用了缓存系统或数据库系统。但是对全局或外部来说这是一次请求,所以会有唯一的一个TraceId。
  • SpanId,虽然全局的来说是一次大的请求,但是在这个链路中内部间还会发起别的请求,这种内部间的每次请求会生成一个SpanId。
  • 如果将整条链路串联起来的话,我们需要记录全局的TraceId,代表当前节点的SpanId和发起对当前节点调用的的父级ParentId。
  • 然后基于链路跟踪的核心概念,然后介绍一下Zipkin衍生出来了几个相关概念
  • cs:Clent Sent 客户端发起请求的时间,比如 dubbo 调用端开始执行远程调用之前。
  • cr:Client Receive 客户端收到处理完请求的时间。
  • ss:Server Receive 服务端处理完逻辑的时间。
sr - cs = 请求在网络上的耗时
ss - sr = 服务端处理请求的耗时
cr - ss = 回应在网络上的耗时
cr - cs = 一次调用的整体耗时

本文名称:ASP.NETCore实现整合Zipkin链路跟踪的方法-创新互联
分享链接:http://abwzjs.com/article/hhces.html