Dubbo日志链路追踪TraceId怎么选型


本篇内容介绍了“Dubbo日志链路追踪TraceId怎么选型”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!开发排查系统问题用得最多的手段就是查看系统日志,但是在分布式环境下使用日志定位问题还是比较麻烦,需要借助 全链路追踪ID 把上下文串联起来,本文主要分享基于 Spring Boot + Dubbo 框架下 日志链路追踪ID 的实现方案选型思路。全链路追踪的核心思想:为每条请求都单独分配一个唯一的 traceId 用来标识一条请求链路,该 traceId 会贯穿整个请求处理过程的所有服务每个服务/线程都拥有自己的 spanId 标识,代表请求的其中一段处理步骤一个请求包含一个 traceId 和一个或多个 spanId日志全链路追踪 就是在每条系统日志里都添加显示 traceIdspanId 信息这是 SkyWalking 的一个日志插件,通过这个插件可以在日志中输出 traceId配置依赖,在 pom 文件中添加以下内容配置日志模板,修改 logback-spring.xml 文件中 Appender 元素的 encoder 为以下内容ps: pattern 中的内容按需修改,其中的 %tid 就是相当于 traceId,默认 TID:N/A,当有请求调用时会生成并显示 traceId优点:无需编码,业务无入侵,可与 SkyWalking 的图形化界面中使用该ID快速定位各种接口的调用关系。缺点:强耦合 SkyWalking 才能生效必须添加sk的 javaagent必须部署 SkyWalking 服务端SleuthSpring Cloud 的组件之一,它为 Spring Cloud 实现了一种分布式追踪解决方案,兼容Zipkin,HTrace与其他日志追踪系统配置父依赖,在 pom 文件中添加以下内容管理版本号配置依赖,在 pom 文件中添加以下内容适配dubbo,要让 sleuth 支持 dubbo 框架,需要增加以下两个步骤:首先添加 dubbo 的插件依赖配置 dubbo 过滤器配置日志模板,修改 logback-spring.xml 文件中 Appender 元素的 encoder 为以下内容ps: pattern 中的内容按需修改,其中的 %X{X-B3-TraceId} 为 traceId,%X{X-B3-SpanId} 为 spanId优点:业务无入侵,有丰富的插件进行扩展包括定时任务、MQ等。缺点brave-instrumentation-dubbo-rpc 不支持 dubbo 2.7 香港云主机.x 需要自行开发插件。使用 LogbackMDC 机制,在日志模板中加入 traceId 标识,取值方式为 %X{traceId}系统入口(api网关)创建 traceId 的值使用 MDC 保存 traceId修改 logback 配置文件模板格式添加标识 %X{traceId}MDC(Mapped Diagnostic Context,映射调试上下文)是 log4j 和 logback 提供的一种方便在多线程条件下记录日志的功能。解决 traceId 跨线程丢失问题由于 MDC 内部使用的是 ThreadLocal 所以只有本线程才有效,子线程和下游的服务 MDC 里的值会丢失;需要解决 Spring 的各种线程池与异步方法的父子线程间传递。解决思路:重写一个 MDCAdapter 使用阿里的 TransmittableThreadLocal 替换原来的 ThreadLocal 对象,解决各种线程池(ExecutorService / ForkJoinPool / TimerTask)父子进程传值问题。需要使用 TtlRunnableTtlCallable 来修饰传入线程池的 RunnableCallable解决 traceId 跨进程丢失问题dubbo服务 使用 org.apache.dubbo.rpc.Filter 创建一个过滤器进行 traceId 传递服务消费者:负责传递链路追踪 ID服务提供者:负责接收 ID 并保存到 MDC优点:业务无入侵,最小依赖,扩展灵活,适配性强。缺点:需要自行实现,有大量的开发工作量。“Dubbo日志链路追踪TraceId怎么选型”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注开发云网站,小编将为大家输出更多高质量的实用文章!

相关推荐: 如何进行TE的MakeXpl命令行使用

如何进行TE的MakeXpl命令行使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。TE中的MakeXpl工具,可以将skyline支持的模型格式,打包成xpl2格式 ,同时对模型进行优化,自动对…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 10/09 19:44
Next 10/09 20:04

相关推荐