分布式服务中,Feign请求拦截器实现Spring Cloud中日志链路的跟踪

我们在开发分布式系统的时候,经常会要排查问题,但是分布式服务比较恶心的就是,服务比较多,请求比较多,日志刷新比较快,如果没有关键字,那么从最原始的请求开始到后续的服务,我们根本无法追踪到一条完整的线路。如何在分布式环境中进行日志的链路追踪呢?

下面说一下springcloud中openfeign进行开发的时候,进行链路追踪的设置。

首先定义interceptor定义一个拦截器,过滤所以请求,并设置logback中的triceId
分布式服务中,Feign请求拦截器实现Spring Cloud中日志链路的跟踪_第1张图片
然后配置拦截器
分布式服务中,Feign请求拦截器实现Spring Cloud中日志链路的跟踪_第2张图片
接着进行openfeign的配置
分布式服务中,Feign请求拦截器实现Spring Cloud中日志链路的跟踪_第3张图片
然后进行feignInterceptor的bean实例化,以让spring进行管理
分布式服务中,Feign请求拦截器实现Spring Cloud中日志链路的跟踪_第4张图片
FeignInterceptor是import feign.RequestInterceptor;引自feign-core包
最后在被带调用方获取调用方传过来的triceId
分布式服务中,Feign请求拦截器实现Spring Cloud中日志链路的跟踪_第5张图片
如图就可以完成分布式服务的日志追踪了!

你可能感兴趣的:(spingboot,ribbion)