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

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

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

流量回放可以做什么?

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

全部留言(29)

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

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

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

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

    2
    7
  • Jackey
    用生产环境的流量来做压测?

    作者回复: 不错的场景

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

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

    2
    2
  • 每天晒白牙
    一直都是用 tcpcopy

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

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

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

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

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

    1
  • Dovelol
    还可以压测,性能优化之类的

    作者回复: 是的

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

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

    2
  • Trident
    这个流量回放只使用幂等的接口吧

    作者回复: 幂等用起来最方便

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