Spring Cloud Sleuth 链路追踪

随着微服务的数量增长,一个业务接口涉及到多个微服务的交互,在出错的情况下怎么能够快速的定位错误,这是一个难题。

好在Spring Cloud已经为什么实现了一个非常好的方案来对服务进行追踪。

Sleuth就是做这个事情的,它在日志中引入唯一的请求ID来标识每次请求,通过SpanId来构成整个的链路。

只需要引入依赖就可以集成Sleuth

 <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-sleuth</artifactId>
 </dependency>

在方法中记录日志我们会发现在日志的最前面对了一部分内容,这部分内容就是Sleuth为什么提供的链路信息

2016-02-02 15:30:57.902  INFO [bar,6bfd228dc00d216b,6bfd228dc00d216b,false] 23030 --- [nio-8081-exec-3] ...
2016-02-02 15:30:58.372 ERROR [bar,6bfd228dc00d216b,6bfd228dc00d216b,false] 23030 --- [nio-8081-exec-3] ...
2016-02-02 15:31:01.936  INFO [bar,46ab0d418373cbc9,46ab0d418373cbc9,false] 23030 --- [nio-8081-exec-4] ...

可以看到内容是由[appname,traceId,spanId,exportable]组成的, 具体含义如下:

  • appname:服务的名称,也就是spring.application.name的值,这边要注意下,如果需要输出正确的服务名称,需要将spring.application.name的配置写在bootstrap.properties中
  • traceId:整个请求的唯一ID,它标识整个整个请求的链路
  • spanId:基本的工作单元,发起一起远程调用就是一个span
  • exportable:是否导入数据到Zipkin中

如果仅仅是通过上面的方式,在每条日志中都记录请求的链路信息,我们也是可以通过traceId来追踪整个请求的信息,但是不是特别直观,这个时候就需要将数据导

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值