流量回放平台

流量回放

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

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

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

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

2.方案

日志采集

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

数据传输

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

数据处理

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

数据转存

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

ELK

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

压测

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

全链路压测核心点

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

全链路压测关注指标

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

3.使用说明

1.新建采集任务

 

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

2.流量回放

 

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

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

3.分析

 

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

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值