21 | 流量回放:保障业务技术升级的神器
何小锋
该思维导图由 AI 生成,仅供参考
你好,我是何小锋。上一讲我们学习了时钟轮在 RPC 中的应用,核心原理就一个关键字“分而治之”,我们可以把它用在任何需要高效处理大量定时任务的场景中,最具有代表性的就是在高并发场景下的请求超时检测。
回顾完上一讲的重点,我们就进入咱们今天的主题,一起看看流量回放在 RPC 里面的应用。
如果你经常翻阅一些技术文章的话,可能你会不止一次看到过“流量回放”这个词。我简单地介绍一下,所谓的流量就是某个时间段内的所有请求,我们通过某种手段把发送到 A 应用的所有请求录制下来,然后把这些请求统一转发到 B 应用,让 B 应用接收到的请求参数跟 A 应用保持一致,从而实现 A 接收到的请求在 B 应用里面重新请求了一遍。整个过程我们称之为“流量回放”。
这就好比今晚有场球赛,但我没空看,但我可以利用视频录播技术把球赛录下来,我随时想看都可以拿出来看,画面是一模一样的。
那在系统开发的过程中,回放功能可以用来做什么呢?
流量回放可以做什么?
我个人感觉,在我们日常开发过程中,可以专心致志地写代码、完成业务功能,是件很幸福的事儿,让我比较头疼的是代码开发完成后的测试环节。
在团队中,我们经常是多个需求并行开发的,在开发新需求的过程中,我们还可能夹杂着应用的重构和拆分。每到这个时候,我们基本很难做到不改动老逻辑,那只要有改动就有可能会存在考虑不周全的情况。如果你比较严谨的话,那可能在开发完成后,你会把项目里面的 TestCase 都跑一遍,并同时补充新功能的 TestCase,只有所有的 TestCase 都跑通后才能安心。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
流量回放是一种在RPC中应用的技术,通过记录某段时间内的所有请求并将其转发到另一个应用,实现对请求的再次发送,以验证应用逻辑的正确性。在日常开发中,流量回放可以帮助开发人员验证代码的正确性,尤其是在大规模改动应用逻辑时。传统的QA测试方式耗时且不完全可靠,而流量回放则可以使用线上流量验证应用的稳定性,提高测试效率和可靠性。在RPC中支持流量回放功能可以让开发人员更放心地升级应用,提高应用的稳定性。除了验证应用逻辑,流量回放还可以用于其他有意义的事情,如性能测试等。因此,流量回放在技术升级中具有重要的作用,可以帮助开发人员更有效地保障应用的稳定性和正确性。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《RPC 实战与核心原理》,新⼈⾸单¥59
《RPC 实战与核心原理》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(29)
- 最新
- 精选
- 雨霖铃声声慢流量回放功能应该还可以用来恢复数据,比如一段时间的数据由于某种原因丢失了,那我们就应该用流量回放功能恢复这段时间的数据,当然要求接口是幂等的,否则会导致错误数据。
作者回复: 恢复数据更多会采用log
2020-04-0829 - Darren老师,请教个问题,那既然能放在rpc做,那是不是也可以放到网关去做,比如我们机房迁移,或者服务重新部署一套的话,在网关做流量采集然后回访到另外一个网关,后面的服务都涉及到了,这样是否可行?
作者回复: 在入口流量上做也是一种方案
2020-04-0838 - Jackey用生产环境的流量来做压测?
作者回复: 不错的场景
2020-04-144 - 高源还得实践啊😊这个比较高级,能有例子参考学习最好了😊
作者回复: 一般rpc都会有扩展,只要在扩展里面进行异步处理一下就可以满足
2020-04-0823 - 每天晒白牙一直都是用 tcpcopy
作者回复: rpc上支持更方便
2020-04-083 - Reason流量回放适用的方法是不是又限制,需要幂等的方法才可以?
作者回复: 只要做好隔离了,不用区分
2020-04-082 - Dovelol还可以压测,性能优化之类的
作者回复: 是的
2020-04-082 - Json Dumps只是录制请求和响应感觉不够。 响应可能和用户数据有关。 响应=请求参数+用户状态+其他依赖方状态。
作者回复: 你可能想表达的是数据隔离吧?好比如count场景确实可能不够
2020-04-171 - lingjiango流量回放重现生产问题?
作者回复: 不好定位问题的时候,也是可以试试的
2020-04-141 - 鼠标请问update钱包咋回放,原先结果和现在结果肯定不一样吧
作者回复: 写接口比较复杂一点
2020-04-292
收起评论