流量回放平台

流量回放平台,第1张

流量回放平台 流量回放

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

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

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

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

2.方案

日志采集

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

数据传输

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

数据处理

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

数据转存

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

ELK

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

压测

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

全链路压测核心点

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

全链路压测关注指标

  1. 用户
  2. 应用监控,保留现场数据
  3. 代码层面分析
3.使用说明 1.新建采集任务

 

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

2.流量回放

 

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

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

3.分析

 

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5722268.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存