实践讲解Skywalking跨语言请求链路追踪(Python+Java)

1 缘起

服务间链路追踪问题对于大型的业务系统是非常重要的,
一个完整的业务系统中服务数量众多,且是使用不同语言开发的,
如Java、Python、Go、PHP、Ruby等,
服务间调用关系相对于单体服务是爆发式增长,特别是嵌套调用,
这大大增加了排查问题难度,出现问题,需要一点一点排查问题出现在哪个环节,
基于对后台系统追踪的探究,
巨人们研究了众多服务追踪工具,帮助我们理清服务间的调用关系以及服务链路追踪,
常用的服务链路追踪工具有Zipkin、pinpoint、Cat和Skywalking等,
不过,Cat和Zipkin都有较强的代码侵入性,
其中的一个“另类”–Skywalking则是非侵入性的一个工具,是这篇文章的主角,
本文以实战的方式讲解Skywalking对Python服务(Flask)和Java服务(SpringBoot)间请求的链路追踪,
帮助读者掌握Skywalking的应用。

2 服务架构

先给出本文设计架构,如下图所示,
由图可知,该系统有3部分组成,
服务:多种语言的后台服务,如Python后台服务、Java后台服务、PHP后台服务等;
Agent:代理,作为服务与Skywalking的桥梁,传递服务相关数据;
Skywalking:服务监控平台,包括链路追踪、耗时、吞吐量等相关功能。
Python和Java服务信息如下表所示,

你可能感兴趣的:(#,Flask,#,Spring,实践大数据,flask,python,java,springboot,skywalking)