分布式链路追踪-skywalking入门体验

本文介绍了Skywalking分布式链路追踪框架,包括其在微服务、云原生架构中的应用,以及如何通过Docker搭建Skywalking环境。通过Skywalking,可以方便地定位分布式系统中的性能问题,如接口延迟等,并提供了可视化界面。文章还展示了如何集成Logback实现Trace日志打印,增强全链路追踪体验。
摘要由CSDN通过智能技术生成

背景

旁友,你的线上服务是不是偶尔来个超时,或者突然抖动一下,造成用户一堆反馈投诉。然后你费了九牛二虎之力,查了一圈圈代码和日志才总算定位到问题原因了。或者公司内部有链路追踪系统,虽然可以很轻松地通过监控判断问题出现的原因,但是对其中的逻辑完全摸不着头脑。只能上网搜索一番。

旁友,skywalking分布式链路追踪框架了解一下。

有的旁友会有疑惑,我的Spring Boot 就是一个单体应用么,不需要链路追踪?有问题直接翻日志就行了,但是即使是一个 Spring Boot 单体应用,也会和以下服务打交道:

  • 关系数据库,例如说 MySQL、PostgreSQL 等等。
  • 缓存数据库,例如说 Redis、Memcached 等等。
  • 外部三方服务,例如说微信公众号、微信支付、支付宝支付、短信平台等等

可见,仅仅一个 Spring Boot 单体应用,就已经涉及到分布在不同进程中的服务了。此时,就非常有必要用上skywalking。例如说,线上某个 接口访问非常慢,用SkyWalking 可以定位是MySQL 查询比较慢呢,还是调用的第三方服务比较慢。

而在分布式服务中,各个大厂内部系统成百上千的,链路关系更加复杂。比如你在外卖平台上的一个点击请求可能跨了内部几十个Java应用了,在这么长的链路里去排查问题,没有好使的工具怎么行呢。如图是当前分布式系统的现状,图片来源:鹰眼下的淘宝分布式调用跟踪系统介绍

根据上图,我们设想:

1.系统中有可能每天都在增加新服务或删除旧服务,也可能进行升级,当系统出现错误,我们如何定位问题?

2.当用户请求时,响应缓慢,怎么定位问题?

3.服务可能由不同的编程语言开发,1、2 定位问题的方式,是否适合所有编程语言?

Skywalking框架

1.介绍

SkyWalking 是什么?

官方网址 skywalking.apache.org/

skywalking是一个优秀的国产开源框架,2015年由个人吴晟(华为开发者)开源 , 2017年加入Apache孵化器。短短两年就被Apache收入麾下,实力可见一斑。

分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。

提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。

代码无侵入,通信方式采用GRPC,实现方式是java探针,支持告警,JVM监控,支持全局调用统计等等

skywalking的架构参考了谷歌的Dapper框架的论文,Dapper并没有开源,只给了篇论文,感兴趣但又不喜英文文档的旁友可以看看论文的中文翻译Dapper,大规模分布式系统的跟踪系统

整体架构如下:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值