1、traceid的生成方式
示例:

127000000001167446522730110001ed:
前12位,127000000001是ip地址:
中间13位,1674465227301部分是:毫秒值
ed:固定后缀,
后面5位:10001,见下图,值为从10000开始的到90000结束的的一个每次递增的值,到90000后,重新从10000开始计数
AtomicInteger count =new AtomicInteger(10000);


2、traceid 生成及销毁阶段
一次完整的请求的Event处理包含 BEFORE,RETURN,THROWS,
每次当Event事件类型=BEFORE,开始Tracer.start(); 生成traceid
当Event事件类型 !=BEFORE 时,表示本次请求处理完毕,开始Tracer.end(); 清理traceid
3、traceid 一次请求中不同阶段的传递
traceid 包装至TraceContext对象中,TraceContext存储在ThreadLocal中,通过ThreadLocal实现共享

网友评论