问题
虽然链路数据是异步发送至阿里云,在极端情况下可能存在延迟甚至影响交易风险
结论
结论先行:不会存在如上所述风险。
原因
背景:
阻塞队列长度、flushinterval由使用者定义。目前我们定义值为:
- taoist.flushIntervalMs=100
- taoist.maxQueueSize=100
原理:
分布式链路追踪链路日志异步批量发送流程图如下:
在链路跨度span 显式调用finish之后,在图中标注①所示位置会立即返回,虽然是个阻塞队列,源码中采用的是offer方法——即队列有空闲空间就入队列,return true;否则return false。
由此可知,造成的后果顶多就是丢失链路日志。
image.png
网友评论