开发者学堂课程【全面讲解 Spring Cloud Alibaba 技术栈(知识精讲+项目实战)第三阶段:链路追踪技术介绍】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/685/detail/11897
链路追踪技术介绍
内容介绍
一、前言
二、简介
三、常见的链路追踪技术
一、前言
首先看一个问题,在浏览器上有一个网址,这个网址是发往网关的,然后请网关转到订单微服务上,进行一个下单操作,接下来运行时会发现一直在转圈,用了4.15秒才完成,下单确实成功了。
但是再来一次也还是用了很长时间,由此可见在下单的过程中肯定是出现问题了,所以问题就是:该怎样排查这些问题?
此时先把链路画出来,先画出客户端,再画出微服务,依次是网关、订单、商品微服务。
有客户端发送请求到达网关,网关会把请求转发到订单微服务,订单微服务会调动商品微服务进行商品信息的查询,商品信息查询后会把结果返回,订单微服务拿到返回结果会进行下单操作,会把结果交给网关,再返回客户端。
二、简介
耗时的点到底发生在哪里?如何定位呢?
--debug 生产、日志
链路追踪:GPS
在大型系统的微服务化构建中,一个系统被拆分成了许多模块。这些模块负责不同的功能,组合成系统,最终可以提供丰富的功能。在这种架构中,一次请求往往需要涉及到多个服务。
互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心,也就意味着这种架构形式也会存在一些问题:
·如何快速发现问题?
·如何判断故障影响范围?
·如何梳理服务依赖以及依赖的合理性?
·如何分析链路性能问题以及实时容量规划?
路径如图所示
三、常见的链路追踪技术
• cat
由大众点评开源,基于 Java 开发的实时应用监控平台,包括实时应用监控,业务监控。
集成方案是通过代码埋点的方式来实现监控,比如:拦截器,过滤器等。对代码的侵入性很大,集成成本较高。风险较大。
•zipkin
由 Twitter 公司开源,开放源代码分布式的跟踪系统,用于收集服务的定时数据,以解决微服务架构中的延迟问题,
包括:
数据的收集、存储、查找和展现。该产品结合 spring-cloud-sleuth 使用较为简单,集成很方便,但是功能较简单。
• pinpoint
Pinpoint 是韩国人开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI 功能强大,接入端无代码侵入。
• skywalking
SkyWalking 是本土开源的基于字节码注入的调用链分析,以及应用监控分析工具。
特点是支持多种插件,UI 功能较强,接入端无代码侵入。目前已加入 Apache 孵化器。
•Sleuth
SpringCloud 提供的分布式系统中链路追踪解决方案。
注意:
SpringCloud alibaba 技术栈中并没有提供自己的网关,我们可以采用 Sleuth 来做链路追踪解决方案