RPC 实战与核心原理
何小锋
京东云混合云首席架构师
40244 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 29 讲
RPC 实战与核心原理
15
15
1.0x
00:00/00:00
登录|注册

21 | 流量回放:保障业务技术升级的神器

RPC内置流量回放功能
实现流量回放的方式
使用线上流量测试的效果
传统QA测试的问题
代码开发完成后的测试环节
使用流量回放的其他有意义的应用
RPC支持流量回放功能
引入线上Case去验证改造后的应用
保障线上应用的稳定
RPC支持流量回放
回放功能的作用
流量的定义
高并发场景下的请求超时检测
时钟轮的应用
课后思考
总结
流量回放在RPC中的应用
RPC中的应用
保障业务技术升级的神器
流量回放

该思维导图由 AI 生成,仅供参考

你好,我是何小锋。上一讲我们学习了时钟轮在 RPC 中的应用,核心原理就一个关键字“分而治之”,我们可以把它用在任何需要高效处理大量定时任务的场景中,最具有代表性的就是在高并发场景下的请求超时检测。
回顾完上一讲的重点,我们就进入咱们今天的主题,一起看看流量回放在 RPC 里面的应用。
如果你经常翻阅一些技术文章的话,可能你会不止一次看到过“流量回放”这个词。我简单地介绍一下,所谓的流量就是某个时间段内的所有请求,我们通过某种手段把发送到 A 应用的所有请求录制下来,然后把这些请求统一转发到 B 应用,让 B 应用接收到的请求参数跟 A 应用保持一致,从而实现 A 接收到的请求在 B 应用里面重新请求了一遍。整个过程我们称之为“流量回放”。
这就好比今晚有场球赛,但我没空看,但我可以利用视频录播技术把球赛录下来,我随时想看都可以拿出来看,画面是一模一样的。
那在系统开发的过程中,回放功能可以用来做什么呢?

流量回放可以做什么?

我个人感觉,在我们日常开发过程中,可以专心致志地写代码、完成业务功能,是件很幸福的事儿,让我比较头疼的是代码开发完成后的测试环节。
在团队中,我们经常是多个需求并行开发的,在开发新需求的过程中,我们还可能夹杂着应用的重构和拆分。每到这个时候,我们基本很难做到不改动老逻辑,那只要有改动就有可能会存在考虑不周全的情况。如果你比较严谨的话,那可能在开发完成后,你会把项目里面的 TestCase 都跑一遍,并同时补充新功能的 TestCase,只有所有的 TestCase 都跑通后才能安心。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

流量回放是一种在RPC中应用的技术,通过记录某段时间内的所有请求并将其转发到另一个应用,实现对请求的再次发送,以验证应用逻辑的正确性。在日常开发中,流量回放可以帮助开发人员验证代码的正确性,尤其是在大规模改动应用逻辑时。传统的QA测试方式耗时且不完全可靠,而流量回放则可以使用线上流量验证应用的稳定性,提高测试效率和可靠性。在RPC中支持流量回放功能可以让开发人员更放心地升级应用,提高应用的稳定性。除了验证应用逻辑,流量回放还可以用于其他有意义的事情,如性能测试等。因此,流量回放在技术升级中具有重要的作用,可以帮助开发人员更有效地保障应用的稳定性和正确性。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《RPC 实战与核心原理》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(29)

  • 最新
  • 精选
  • 雨霖铃声声慢
    流量回放功能应该还可以用来恢复数据,比如一段时间的数据由于某种原因丢失了,那我们就应该用流量回放功能恢复这段时间的数据,当然要求接口是幂等的,否则会导致错误数据。

    作者回复: 恢复数据更多会采用log

    2020-04-08
    2
    9
  • Darren
    老师,请教个问题,那既然能放在rpc做,那是不是也可以放到网关去做,比如我们机房迁移,或者服务重新部署一套的话,在网关做流量采集然后回访到另外一个网关,后面的服务都涉及到了,这样是否可行?

    作者回复: 在入口流量上做也是一种方案

    2020-04-08
    3
    8
  • Jackey
    用生产环境的流量来做压测?

    作者回复: 不错的场景

    2020-04-14
    4
  • 高源
    还得实践啊😊这个比较高级,能有例子参考学习最好了😊

    作者回复: 一般rpc都会有扩展,只要在扩展里面进行异步处理一下就可以满足

    2020-04-08
    2
    3
  • 每天晒白牙
    一直都是用 tcpcopy

    作者回复: rpc上支持更方便

    2020-04-08
    3
  • Reason
    流量回放适用的方法是不是又限制,需要幂等的方法才可以?

    作者回复: 只要做好隔离了,不用区分

    2020-04-08
    2
  • Dovelol
    还可以压测,性能优化之类的

    作者回复: 是的

    2020-04-08
    2
  • Json Dumps
    只是录制请求和响应感觉不够。 响应可能和用户数据有关。 响应=请求参数+用户状态+其他依赖方状态。

    作者回复: 你可能想表达的是数据隔离吧?好比如count场景确实可能不够

    2020-04-17
    1
  • lingjiango
    流量回放重现生产问题?

    作者回复: 不好定位问题的时候,也是可以试试的

    2020-04-14
    1
  • 鼠标
    请问update钱包咋回放,原先结果和现在结果肯定不一样吧

    作者回复: 写接口比较复杂一点

    2020-04-29
    2
收起评论
显示
设置
留言
29
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部