阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

认识Sleuth和Zipkin

200次阅读
没有评论

共计 1285 个字符,预计需要花费 4 分钟才能阅读完成。

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,表明上下游请求的关系;利用这些信息,可以可视化地分析服务调用链路和服务间的依赖关系。

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-06-06发表,共计1285字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中