spring cloud 分布式链路追踪

一篇讲了微服务之间的调用  spring cloud eureka 微服务之间的调用 

微服务之间进行调用 那么如果我负责一个模块 别人负责另一个模块 我调用了他的方法 测试那边却报了错 那是我的问题还是他的问题

这个时候大家应该就能想到日志可以解决这个问题 

如何使用日志呢 先在配置文件中加

logging:
  path: D:logspoppy-mall #日志的存放地址 最好再加个项目名的文件夹 可以更容易的区分
  level:
   org.poppy.mall: info #日志的级别 org.poppy.mall 是你的包名

然后就可以在你想添加日志的类中写上

public static Logger logger =LoggerFactory.getLogger(类名.class);

之后就在你想加日志的地方加上 logger.info("日志信息")

运行后会自动在你写的日志存放的地址加入日志文件 (它会自动生成文件夹)

查看一下内容 

是这个样子的 这样就解决了排错的问题 

那么新问题又来了  如果我调用了几万次这个方法 我怎么才能找得到我这个服务调用的到底是那次请求的另一个微服务?

这时候就用到了分布式链路追踪

先引入依赖 想要追踪那个项目 都要在里面加入这个依赖 

compile group: 'org.springframework.cloud', name: 'spring-cloud-starter-sleuth'

之后再运行 查看日志 发现是这个样子 

可以发现多出来一串编码 它有什么用呢

粉色框的编码 它代表的是在同一次请求中 编码就相同  红色框的代码 代表的是在同一服务中 它会相同 

这样就解决了我们的问题 我们只要找到报错的一次请求 复制粉色框内的编码 到另一个服务的日志中进行查找 就能找到

这就是分布式链路跟踪

原文地址:https://www.cnblogs.com/wangkee/p/9305743.html