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