前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >认识Sleuth和Zipkin

认识Sleuth和Zipkin

作者头像
星哥玩云
发布2022-09-15 14:28:42
4990
发布2022-09-15 14:28:42
举报
文章被收录于专栏:开源部署

1、微服务链路跟踪介绍

1.1、为什么要实现微服务链路跟踪

一个完整的微服务系统一般由成百上千,甚至上几万、几十万、几百万的服务实例构成。在这种规模下,如果出现问题,则准确跟踪问题点会十分困难。所以,需要用链路跟踪工具来监控微服务状态,当出现问题时能及时定位问题点,快速解决问题。

实现微服务链路跟踪主要有以下需求:

**实时监控:**完备的监控系统可以提供及时、准确的性能报告,可以了解请求的路径、请求耗费的时间、网络延迟状况、单个业务逻辑耗费时间等指标

**决策:**可以分析系统瓶颈、解决系统存在的问题,以及当前和未来的决策提供基础数据

**避免技术债务:**系统会根据业务需求不断地进行演变,如果过去遗留的问题没处理好,则会对新的功能产生影响。如果没有跟踪技术,则会产生大量技术债务。技术债务的累计会对修改或升级带来更多的问题

**快速定位故障:**如果要解决问题,则首先要发现问题,然后定位问题的故障点、及时采取措施解决问题。发现、定位、解决问题都非常重要,如果任何一点没有能及时得到解决,则在发生故障后会花费非常长的时间

1.2、微服务链路跟踪的技术要求

一个好的链路跟踪技术应满足以下要求:

**低消耗:**跟踪系统本质是发现某个系统的性能或故障问题,所以它不能反过来影响被监控系统的性能

**应用透明:**应用透明即要求链路跟踪技术对业务系统是透明的,没有侵入性,不会影响开发人员开发业务,或者不会因为开发人员的疏忽而失效

**延展性:**链路跟踪系统应能满足业务系统的发展的需求。当系统越来越庞大和复杂后,链路跟踪技术依然能快速地跟踪产生的数据,并及时地对数据进行统计和生成报表

**可控采样率:**可以通过设置采样率平衡性能消耗和采样质量

**可视化:**具有可视化的控制台也是链路跟踪的一个重要要求

2、认识Sleuth和Zipkin

2.1、Sleuth

Spring cloud 借助了Google Dapper、Twitter Zipkin和Appache HTrace的设计,提供了分布式跟踪的解决方案Sleuth。其兼容Zipkin、HTrace和Log-based追踪微服务的服务调用链路。

Sleuth术语:

跨度(Span):

它是链路跟踪的基本单元。Span通过一个64位的ID来唯一标识,它还包含摘要、时间戳时间、关键值注释(tags)和进度ID

跟踪(Trace):

一系列Span组成一个树状结构(即一个Trace)。和Span一样,Trace以另一个64位的ID来标识

标注(Annotation):

Annotation用于及时记录一个事件,可以定义请求的开始和停止等信息。比如,客户端发起一个请求,Annotation会描述这个Span的开始;服务器端获得请求并准备开始处理它,Annotation可以根据服务器端收到的请求时间戳、客户端发送请求时间戳来计算网络的延迟

2.2、Zipkin

Zipkin主要提供链路追踪的可视化功能。

**Zipkin的原理:**在服务调用的请求和响应中加入ID,表明上下游请求的关系;利用这些信息,可以可视化地分析服务调用链路和服务间的依赖关系。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、微服务链路跟踪介绍
    • 1.1、为什么要实现微服务链路跟踪
    • 1.2、微服务链路跟踪的技术要求
    • 2、认识Sleuth和Zipkin
      • 2.1、Sleuth
        • 2.2、Zipkin
        相关产品与服务
        微服务引擎 TSE
        微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档