全链路跟踪TraceId

数据库主键:标示唯一一条数据,譬如唯一商品,唯一订单

全局事务ID:实现分布式事务一致性的必备良药
请求ID:requestId,seesionId,标示一个请求或者一次会话的生命周期
身份证ID:代表你在中国的唯一标示
学号监狱号:你在某个机构的特殊代号
分布式全链路ID:一次在代码里留下到此一游的留念
等等。。。。
 
TraceId 作用
标示一次调用的上下文ID,通过此ID可以获悉你所做事情的足迹链。
譬如可以:
统计走过的每个方法的耗时
获取你自己对自己说的话(自己打得日志)
排查错误请求老前辈时的沟通密语
纪录开始和结束,保存此生所有事迹
等等。。。。
 
TraceId 实现
  • 负载均衡:譬如 nginx,初始化 traceId 放入header
  • web request:通过 fliter 获取 header的traceId,无则初始化 traceId
  • rpc 调用:通过扩展机制传递 traceId,无则初始化 traceId
  • 定时任务 @Schedule:通过 注解切面@TraceId, 初始化 traceId
  • 消息消费:通过消息传递协议添加traceID,无则使用注解切面@TraceId初始化 traceId
  • 线程池或者异步:封装runnable和callable初始化传递traceId或者封装线程池初始化传递traceId
  • 等等。。。
根据此traceId的基础上,可以实现以上描述的耗时,调用链,错误排查等监控修复等需求。
posted @   wade&luffy  阅读(15779)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示