开发者学堂课程【分布式链路追踪 Skywalking:学习目标】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/743/detail/13150
学习目标
内容:
一、背景
二、单体架构和微服务架构
三、学习目标
一、背景
随着互联网时代发展越来越快,很多企业为了快速的响应需求迭代,将原本的单体架构逐步转变为微服务架构。这种转变虽然带来很大的灵活度,但是也引入了很多的复杂性,因此需要分析微服务架构上线后会出现哪些问题。
二、单体架构和微服务架构
以电商系统为例
1.单体架构
电商系统的单体架构比较简单,如图:
浏览器发送一个请求到电商系统获取订单数据,之后电商系统会在数据库中查询订单相关的数据,然后再将该数据返回给浏览器,这样就完成了一次数据的交互。此时如果接口调用上出现了异常,就需要分析电商系统里面的日志,找到问题发生的根源。
2.微服务架构
如果转变为微服务架构,如图:
微服务架构本质上需要对单体架构下的应用进行拆分,可以看到,当前原来的应用变成了三个服务:用户服务、订单服务和商品服务,而且各自都有各自的数据库,所以用户在通过浏览器获取订单数据时,会调用订单服务的接口,然后订单服务会在订单数据库查询订单的数据,然而仅仅有订单的数据还无法在异面上展示,用户还需提取用户服务的信息和商品服务的信息,所以订单服务会通过服务之间的调用来调用用户服务和商品服务提供的接口。
3.微服务架构的问题
整个过程经过了三个服务和三个数据库,整体的复杂性大大上升。因此会出现许多问题,以下是微服务架构上线后可能需要解决的问题 :
(1)当商品服务出现异常时,就会比较难定位。当调用出现异常时,如何能快速定位到异常服务,解决导致整个调用出现异常,这是需要解决的第一个问题。
(2)需要了解线上的服务当前的性能指标,如果订单服务的性能出现问题,就可以在订单服务上添加节点来支持更大的请求量,即需要实际的数据来告诉我们服务当前的性能是否正常。
以上的问题在今天已经可以解决,Skywalking 就是其中的佼佼者。
三、学习目标:
1.Skywalking 对应的一些概念
包括 APM 系统、分布式链路追踪、以及 Skywalking 这些基础概念。通过这些基础概念,更好的了解 Skywalking 。
2. 能够搭建 Skywalking 的基础环境
在该环境下学习如何用 Skywalking 来进行分布式的一个监控。
3.通过两个案例:rpc 调用和 mysql 调用来了解 Skywalking 对一些高级调用的支持
4.了解 Skywalking 常用插件
5.了解 Skywalking 底层原理如:Java agent 和 Open Tracing