上一讲我们掌握了基于 Sleuth+Zipkin 对微服务架构实施基于日志的链路追踪,通过 Sleuth 在微服务应用中附加链路数据,再通过 Zipkin 实现链路数据收集与可视化,从而保证开发与运维人员在生产环境了解微服务的执行过程与具体细节,为产品运维提供了有力的保障。
本讲咱们还是围绕链路追踪这个话题,介绍另一款著名的链路追踪产品 SkyWalking,掌握 SkyWalking 的使用方法。本讲咱们将介绍三方面内容:
-
介绍 APM 与 SkyWalking;
-
部署 SkyWalking 服务端与 Java Agent;
-
介绍 SkyWalking 常用视图。
APM 与 SkyWalking
这些年随着微服务体系的不断完善,链路追踪已经不是什么新兴的概念与技术,很多厂商也提供了自己的链路追踪产品,例如 Spring Cloud Slueth、Zipkin、阿里鹰眼、大众点评 Cat、SkyWalking 等。但这些产品都有一个共同的名字:APM(Application Performance Management),即应用性能管理系统。顾名思义这些产品的根本目的就是对应用程序单点性能与整个分布式应用进行监控,记录每一个环节程序执行状况,通过图表与报表的形式让运维人员随时掌握系统的运行状况,其中在这些著名的产品中我非常推荐各位掌握 SkyWalking 这款 APM 产品,理由很简单,它在简单易用的前提下实现了比 Zipkin 功能更强大的链路追踪、同时拥有更加友好、更详细的监控项,并能自动生成可视化图表。相比 Sleuth+Zipkin 这种不同厂商间混搭组合,SkyWalking 更符合国内软件业的“一站式解决方案”的设计理念,下面咱们来了解下 SKyWalking。
SkyWalking 是中国人吴晟(华为)开源的应用性能管理系统(APM)工具,使用Java语言开发,后来吴晟将其贡献给 Apache,在 Apache 的背书下 SkyWalking 发展迅速,现在已属于 Apache 旗下顶级开源项目,它的官网:http://skywalking.apache.org/。
SkyWalking 提供了分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。目前在 GitHub 上 SkyWaking 拥有 15.9K Star,最新版本为:8.3.0。
链路追踪视图
指标监控全局视图
为了能够让各位有个直观认识,我们通过 Sleuth+Zipkin 与 SkyWalking 做对比,看两者的优劣。
通过比较我们可以发现,在易用性和使用体验上,SkyWalking 明显好于 Zipkin,功能更丰富的同时也更符合国人习惯,但因为迭代速度较快,社区文档相对陈旧,这也导致很多技术问题需要程序员自己研究解决,因此在解决问题方面需要更多的时间。
部署 SkyWalking 服务端与 Java Agent
在了解 SkyWalking 后,咱们正式进入 SkyWalking 的安装与使用吧。
部署 SkyWalking 服务端
首先咱们要理解 SkyWalking 架构图
SkyWalking 的架构图
SkyWalking 同样采用客户端与服务端架构模式,SkyWalking 服务端用于接收来自 Java Agent 客户端发来的链路跟踪与指标数据,汇总统计后由