这是我参与「第五届青训营 」伴学笔记创作活动的第 13 天
一、本堂课重点内容:
- 本堂课的知识要点有哪些?
-
RPC 相关的基本概念
-
RPC 框架的分层设计
-
衡量 RPC 框架的一些核心指标
-
字节内部 RPC 框架 Kitex 实践分享
二、详细知识点介绍:
- 本堂课介绍了哪些知识点?
什么是RPC
RPC(Remote Procedure Call Protocol)远程过程调用协议。一个通俗的描述是:客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个对象,就像调用本地应用程序中的对象一样。比较正式的描述是:一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
RPC概念模型
RPC基本组成
-
Client:RPC协议的调用方。
-
Stub/Proxy:RPC代理存在于客户端,为了实现客户端对RPC框架“透明”调用,客户端不能自行去管理消息格式、不可能自己去管理网络传输协议,也不可能自己去判断调用过程是否有异常。这一切工作在客户端都是交给RPC框架中的“代理”层来处理的。
-
Message Protocol:种两端都能识别的,共同约定的消息格式。
-
IDL:通过中立的方式描述接口,使得在不同平台上运行的对象和不同语言编写的程序可以相互通信。实际上IDL(接口定义语言)并不是RPC实现中所必须的。但是需要跨语言的RPC框架一定会有IDL部分的存在。这是因为要找到一个各种语言能够理解的消息结构、接口定义的描述形式。
RPC的优点
1.单一职责,有利于分工协作和运维开发。
2.可扩展性强,资源使用率更优。
3.故障隔离,服务的整体可靠性更高。
三、实践练习例子:
- 有什么实践举例帮助理解知识点?
四、课后个人总结:
- 本章有什么知识点不容易掌握?
- 什么地方容易与其他内容混淆?
五、引用参考:
- 我参考了哪些外部博客/笔记/文章?
- 文章中有什么地方是我参考引用了外部博客/笔记/文章的?