分布式日志追踪ID实战 | 京东物流技术团队
原文中文,约29900字,阅读约需72分钟。
📝
内容提要
本文介绍了分布式应用下的全局日志ID透传思路和分布式日志追踪ID的实现原理,通过设置和透传logTraceId来提高日志定位和问题排查效率。作者还提供了一个通用的jar包来简化分布式日志追踪ID的使用。
🎯
关键要点
-
本文介绍了分布式应用下的全局日志ID透传思路和分布式日志追踪ID的实现原理。
-
通过设置和透传logTraceId来提高日志定位和问题排查效率。
-
开发排查系统问题时,查看系统日志是最常用的手段,但在高并发时定位问题较为困难。
-
不同场景需要不同的logTraceId透传方案,包括springmvc、jsf、MQ、resteasy、clover和easyjob等。
-
使用MDC进行logTraceId的透传与打印,但MDC在子线程中会丢失值,需要手动传递。
-
在springmvc场景中,通过拦截器实现logTraceId的透传。
-
在jsf场景中,通过自定义filter进行logTraceId的透传。
-
在MQ场景中,生产者在发送消息时将logTraceId设置到消息体中,消费者从中获取。
-
在resteasy场景中,通过拦截器在请求头中透传logTraceId。
-
在clover和easyjob场景中,通过编码方式进行父子线程的logTraceId透传。
-
实战效果显示,通过透传ID可以有效提高日志查询和问题排查的效率。
-
作者提供了一个通用的jar包来简化分布式日志追踪ID的使用。
🏷️