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

视频资源获取失败

开篇词 | 别老想着怎么用好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。

在专栏开始之前,我先简单介绍下自己。我是 1998 年从北航毕业的,毕业以后我就一直在一线编程写代码。2011 年,我正式加入京东,刚好赶上了京东的快速发展期,一路做到了现在的技术架构部首席架构师。盘点下在京东的这 9 年时间,我参加过 17 次大促备战,和我的技术团队一起见证了京东的技术演进过程。我也曾带领团队攻克过很多技术领域难题,包括自主研发微服务框架、高性能消息中间件、智能监控以及容器平台等等。

近几年,我主攻分布式系统架构与设计,这也是我的专长所在。而在搭建分布式系统的过程中,我发现 RPC 总能充当较为关键的角色,它对整个分布式系统性能的提升起到了非常重要的作用。

我期待通过这个专栏,能把我这些年积攒的一些有关 RPC 的实战经验分享给你。

为什么要学习 RPC?

做任何事情都应该 Start with Why,那我们就先来说说为什么要学习 RPC。要回答这个问题,我们就得先考虑下 RPC 的实际应用场景。

说到 RPC,可能你的第一反应就是“微服务”。RPC 最大的特点...

登录 后留言

全部留言(67)

  • 最新
  • 精选
业余草
通俗解释,如果 HTTP 是普通话, 那么 RPC 就是方言。既然是方言,你就会看到各家都有自己的方言, 比如 google 的 gRPC, 百度的 bRPC, facebook 的 thrift,阿里的 dubbo... 而 HTTP 只有官方的一套标准

作者回复: 你好,业余草。rpc目前还没有行业标准,百家争鸣,有竞争才有动力。

2020-02-17
6
85
真正的大佬,写的代码也见识过,可惜JSF源码不开源,反编译看过一点。 互联网三剑客:RPC、MQ、REDIS,不过底座是网络通信。 RPC的核心在于使进程间通信像进程内通信一样简单,更直白一点调用其他应用的方法好似调用本地方法一样简单方便。进程内之所以方便是因为写操作系统的人把复杂的事情给处理了,让业务研发专注于业务逻辑。进程间的调用简单是因为写RPC框架的人把复杂的工作给做了,使业务研发继续专注于业务逻辑。 进程间能通信是第一步,后面随着机器的增多事情就变得复杂了起来,所以,有了服务注册中心、有了服务治理平台、有了配置管理中心、有了容器平台、有了各个各有的监控平台、有了UMP/UCC/LOGBOOK/MDC/OPS/QONE/JONE/CAP等等一系列的东西。 不过问题的根源还是单机的性能及容量有上限导致的,否则也就没这么多的事情了。

作者回复: 对

2020-05-10
2
82
逝光无痕
RPC是通过四层TCP协议还是七层HTTP协议去完成呢,以前看有些文章说是只能是TCP协议去完成调用?对这有些疑惑,希望从这里得到答案!

作者回复: 大部分采用的tcp协议。grpc采用的http2

2020-02-18
6
18
原来RPC最强大的是治理功能,之前只是用作网络通信

作者回复: 你好,一步。为了高可用,RPC需要治理

2020-02-17
16
阿卧
rpc的基础是序列化、编解码和网络传输;高级应用是健康检测、负载均衡、服务治理等。 学问太多了。老师掌握好rpc的应用和原理,算是什么级别的程序员啊?

作者回复: 公司里面的牛人

2020-02-22
15
尔东橙
老师,netty和rpc框架间是什么关系呢

作者回复: netty可以作为rpc的网络传输层

2020-02-26
3
11
sun留白
你好,何老师。可以说说rpc和restful的区别吗?

作者回复: 两个处理流程形似,rpc一般更喜欢tcp,用二进制协议,性能更好,常用的rpc框架功能比restful客户端更多。

2020-02-18
4
11
Walter_Mitty
生涯进入瓶颈期,过来充充电

作者回复: 期望收获满满

2020-02-19
10
td901105
老师,问一下,一般rpc的文章中都会有一张rpc调用的原理图,里面的client stub和server stub是实际存在的吗?还是一个虚拟概念?如果是实际存在的话能举一个具体的例子吗?比如像grpc中具体是怎么实现client stub和server stub的?

作者回复: stub是实际存在的,有些可能运行中生成一个代理类,grpc的stub是静态代理

2020-03-09
9
奔奔奔跑
老师您好,有幸购买您的专栏,我有个疑问想请教一下,你说的在学习rpc的过程中解决实际问题,但是我好像没遇见过啥实际问题呀,框架一用,一跑,完事了。所以我的学习收益太低了,老师能给我讲讲吗?谢谢了

作者回复: 很多问题在框架里面解决了,了解背后的原理

2020-02-27
3
9
收起评论