RPC 实战与核心原理
何小锋
京东云混合云首席架构师
41883 人已学习
新⼈⾸单¥59
课程目录
已完结/共 29 讲
RPC 实战与核心原理
登录|注册
留言
30
收藏
沉浸
阅读
分享
手机端
回顶部
付费课程,可试看

视频资源获取失败

开篇词 | 别老想着怎么用好RPC框架,你得多花时间琢磨原理
01 | 核心原理:能否画张图解释下RPC的通信流程?
02 | 协议:怎么设计可扩展且向后兼容的协议?
03 | 序列化:对象怎么在网络中传输?
04 | 网络通信:RPC框架在网络通信上更倾向于哪种网络IO模型?
05 | 动态代理:面向接口编程,屏蔽RPC处理流程
06 | RPC实战:剖析gRPC源码,动手实现一个完整的RPC
07 | 架构设计:设计一个灵活的RPC框架
08 | 服务发现:到底是要CP还是AP?
09 | 健康检测:这个节点都挂了,为啥还要疯狂发请求?
10 | 路由策略:怎么让请求按照设定的规则发到不同的节点上?
11 | 负载均衡:节点负载差距这么大,为什么收到的流量还一样?
12 | 异常重试:在约定时间内安全可靠地重试
13 | 优雅关闭:如何避免服务停机带来的业务损失?
14 | 优雅启动:如何避免流量打到没有启动完成的节点?
15 | 熔断限流:业务如何实现自我保护?
16 | 业务分组:如何隔离流量?
答疑课堂 | 基础篇与进阶篇思考题答案合集
17 | 异步RPC:压榨单机吞吐量
18 | 安全体系:如何建立可靠的安全体系?
19 | 分布式环境下如何快速定位问题?
20 | 详解时钟轮在RPC中的应用
21 | 流量回放:保障业务技术升级的神器
22 | 动态分组:超高效实现秒级扩缩容
23 | 如何在没有接口的情况下进行RPC调用?
24 | 如何在线上环境里兼容多种RPC协议?
结束语 | 学会从优秀项目的源代码中挖掘知识
加餐 | 谈谈我所经历过的RPC
加餐 | RPC框架代码实例详解
本节摘要

你好,我是何小锋。上一讲我们学习了时钟轮在 RPC 中的应用,核心原理就一个关键字“分而治之”,我们可以把它用在任何需要高效处理大量定时任务的场景中,最具有代表性的就是在高并发场景下的请求超时检测。

回顾完上一讲的重点,我们就进入咱们今天的主题,一起看看流量回放在 RPC 里面的应用。

如果你经常翻阅一些技术文章的话,可能你会不止一次看到过“流量回放”这个词。我简单地介绍一下,所谓的流量就是某个时间段内的所有请求,我们通过某种手段把发送到 A 应用的所有请求录制下来,然后把这些请求统一转发到 B 应用,让 B 应用接收到的请求参数跟 A 应用保持一致,从而实现 A 接收到的请求在 B 应用里面重新请求了一遍。整个过程我们称之为“流量回放”。

这就好比今晚有场球赛,但我没空看,但我可以利用视频录播技术把球赛录下来,我随时想看都可以拿出来看,画面是一模一样的。

那在系统开发的过程中,回放功能可以用来做什么呢?

流量回放可以做什么?

我个人感觉,在我们日常开发过程中,可以专心致志地写代码、完成业务功能,是件很幸福的事儿,让我比较头疼的是代码开发完成后的测试环节。

在团队中,我们经常是多个需求并行开发的,在开发新需求的过程中,我们还可能夹杂着应用的重构和拆分。每到这个时候,我们基本很难做到不改动老逻辑,那只要有改动就有可能会存在考虑不周全的情况。如果你比较严谨的话,那可能在开发完成后,你会把项目里面的 TestCase 都跑一遍,并同时补充新功能的 TestCase,只有所有的 TestCase 都跑通后才能安心。

登录 后留言

全部留言(30)

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

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

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

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

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

作者回复: 不错的场景

2020-04-14
4
每天晒白牙
一直都是用 tcpcopy

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

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

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

2020-04-08
2
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
收起评论