发表时间:2021-07-27浏览次数:
搜索引擎推广全链路压测全链路压测是目前比较好的可以制造出线上大流量的手段。优点在于能串联线上全部系统,并让每个系统同时达到流量峰值(尤其是公共系统)所以适用的场景更多,但实施利息相对较高。全链路压测的技术难度并不大,技术手段主要有流量的制造、流量的标志、测试数据的处置,全链路压测的架构。
流量的制造除了要能够控制流量大小外,还要注意流量发起所在物理网络位置最好能保证流量是从不同的地理位置发起的流量发起端可以部署在各地的CDN节点中,并把不同的网络运营商也考虑进来,这样能更好地模拟真实的用户请求。流量的标志流量制造进去以后,需要做标记,因为它属于测试流量,数据是测试数据,不能和线上的真实数据混同。
标志流量有多种方式:一种是设计不同的数据,无锡搜索引擎推广例如商品数据的商品ID都以999开头、把订单ID设置在某个特殊的区段内;第二种是给每个请求贴上一个tace标签,每个系统调用的地方都能识别出这个标签,一方面可以做一些特殊处理,如取消 token验证,另外一方面也可以把它路由到特殊的数据表中。tac传送是一个难题,最好的方式是通过中间件来完成:从最外面的HTP协议将tace添加在Header中,应用的RPC调用中也可以加到协议头中,再到数据层中也一样,最重要的要保证race标签不能被丢掉否则将出现脏数据。
测试数据的处置对测试数据的处置是最关键的环节,因为是线上真实生产环境的压测,所以对产生的数据的处置不能影响线上的真实数据。对此,提出影子表的概念,和线上的真实表完全一样,甚至和真实表一样用在同一个数据库实例中,通过传送下来的tace标志把这个请求需要写的数据路由到影子表中,这样测试流量的读写都在影子表中完成,不会影响线上的真实数据。将测试数据通过影子表来隔离是非常关键的如果放在一起会引起很多麻烦,也不好清理,即使能够清理也会影响正式表的主键生成规则,影响下游BI对数据的分析和一些监控指标的展示等。
苏公网安备 32021302000811号