欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

流量回放平台

时间:2023-07-28

流量回放

1.简介
  流量回放系统,利用生产上现有真实流量进行镜像,原始流量依然回到生产环境的真实服务器,流量的镜像拷贝会分发到集群外的测试服务器上,在测试服务器上可以实现不同版本的功能测试,或者加压10倍进行性能压测。

流量回放系统的工作原理如下图:

原理:所使用真实的线上流量进行线下回放测试,提升研发效率、保障代码质量,进而减少事故

背景:随着微服务架构的普及和应用,一个复杂的单体服务通常会被拆分成多个小而美的微服务。微服务带来的问题:需要维护的服务数变多,服务之间RPC(远程过程调用:remote procedure call)调用次数增加。手写单测会因为复杂的业务逻辑以及复杂的服务调用需要mock多个下游服务

2.方案

日志采集

通过logstash工具从应用容器拉取日志信息,可以根据filter、tags来筛选

数据传输

通过kafka等消息队列将获取的日志数据传输进行下一步处理

数据处理

从消息队列中消费日志数据,通过storm数据处理系统从日志信息中获取到想要的数据,比如从日志中获取接口的req

数据转存

通过hadoopmysqlhive对处理的数据进行存储,第一轮一般是原始数据,后面可以用mapreduce再次处理,知道得到想要的数据再存储到具体的磁盘中

ELK

elasticsearch+logstash+kibana(前端开源框架)

压测

针对录制的流量进行处理,除敏、渲染、隔离、熔断,得到符合指标的流量,利用这些流量针对接口服务做压测服务,模拟线上请求

全链路压测核心点

流量渲染,打上特有的tag
2、日志隔离,压测的日志和生产的日志隔离
3、风险开关,流量瓶颈时设置黑白名单控制流量
4、数据隔离,影子库

全链路压测关注指标

用户应用监控,保留现场数据代码层面分析

3.使用说明

1.新建采集任务

 

选择对应应用,回放时间可以选择采集完立即回放/手动进行回放(寻找合适时间节点进行回放),开始采集时间设置(一般为应用线上部署成功后开始采集,采集对应线上回归接口(http/dubbo)请求),持续采集时间一般为30分钟,最大采集数量一般为10W(由于我们服务线上访问量比较大)

2.流量回放

 

回放前确保详情采集的dubbo接口和http接口参数和返回是否都正常采集到了,是否有外部http接口没有采集到,怕会造成影响

点击采集完成任务的回放,可以新建回放任务,选择对应分支代码,最大并发数任意选择。

3.分析

 

回放任务完成后可以查看对应详情,查看异常数据和系统错误,查看接口请求的链路情况以及日志,分析分支代码错误的影响,提高研发效率。减少线上问题的发生。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。