分布式日志追踪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的使用。
➡️