|微服务平台之全链路追踪( 三 )


本文插图

再添加两个springboot项目 , 一个订单服务 , 一个产品服务
|微服务平台之全链路追踪
本文插图

由于服务需要注册到注册中心 , 因此两个项目需要添加依赖
|微服务平台之全链路追踪
本文插图

并添加配置信息
|微服务平台之全链路追踪
本文插图

并且订单服务需要调用产品服务的方法 , 在demo中我们使用feign的方式进行服务调用 , 因此在订单服务项目中需要添加依赖
|微服务平台之全链路追踪
本文插图

由于是demo , 因此我们服务中的方法就简单通过返回字符串的方式实现 。
至此我们启动两个微服务应用 , 可以在注册中心中看到两个服务都已经注册上来 , 再通过浏览器请求订单服务的接口 , 可以看到后端通过调用产品服务的接口 , 并返回信息 。
|微服务平台之全链路追踪
本文插图

到目前为止 , 我们只是构建好了微服务应用 , 对应链路追踪功能还没有实现 , 其实在微服务架构下实现链路追踪很简单 , 毕竟有很多开源的组件封装了底层实现原理 , 我们只需要引用这些组件就可以实现链路追踪功能 , 在demo中我通过skywalking来进行链路追踪 , 由于skywalking本身的特性无需代码侵入 , 只需要以探针的方式启动微服务应用即可 。 并自动采集服务调用的相关信息 , 写入数据库 , 然后通过自带的dashboard查看相关信息 。
首先我们先下载skywalking
|微服务平台之全链路追踪
本文插图

其中 , agent目录是应用启动时用的代理 , bin目录是skywalking后端服务和dashboard , 在bin目录执行startup.bat文件 , 启动服务 。
在订单服务和产品服务的项目启动配置中 , 加上jvm参数 , 以探针方式启动2个服务应用
|微服务平台之全链路追踪
本文插图

启动后 , 我们可以通过skywalking自带的dashboard查看信息 。
|微服务平台之全链路追踪
本文插图

可以看到请求的链路情况 , 以及每个路径上的处理时间 , 总的响应时间等信息 。
还有一个目标就是 , 如何将链路跟我们实际的日志记录进行绑定 , 这样方便在某个链路出现问题时 , 我们可以针对这个具体的链路去查看具体问题原因 。
在demo中 , 我们通过logback记录日志 , 添加依赖
|微服务平台之全链路追踪
本文插图

目前很多的链路追踪组件都已经实现了与日志组件的集成 , 只需要引入依赖 , 即可完成将链路traceid对应写入到日志中 。
|微服务平台之全链路追踪
本文插图

|微服务平台之全链路追踪
本文插图

在代码中加入写日志的代码
|微服务平台之全链路追踪
本文插图

增加配置信息 , 以及logback-spring.xml文件
|微服务平台之全链路追踪


推荐阅读