全链路压测的使用场景和基本概念我就不在这里重复,我们今天来重点关注一下做全链路中的几个关键节点的实现原理
如上图,做全链路压测最关键的有三大部分,如下图所示
其中压力机模拟和影子库涉及不少业务改造,在这里不多做介绍,介绍一下流量染色的基本思路
第一步:先设计一下流量染色的基本字段;
traceId:全链路请求的唯一标识,trace 是请求在分布式系统中的整个链路视图,
spanId:传递到服务内部的spanId,一个服务一个spanId;
parentSpanId:和上面的类似,记录了上一次服务的spanId;
这三者的关系可以用这幅图来表示:
X-NSF等下面的6个字段是和NSF agent的交互所用的,主要的目的是安全的与agent进行交互,自动分别代表签名加密算法,时间戳,开关,染色原始环境(tag分支名),染色颜色(不同颜色代表不同级别的流量)
来看下染色的流程