昨天面搜狗的时候问了RPC和gRPC,之前都没听过,现场一度十分尴尬.可能是项目里用到了zmq的东西,面试官就顺口问了。 今天整理下RPC的基本概念,做个记录。
RPC
RPC是 Remote Procedure Call Protocol 的简写,中文描述是远程过程调用,它可以实现客户端像调用本地服务(方法)一样调用服务器的服务(方法)。RPC 可以基于 TCP/UDP,也可以基于 HTTP 协议进行传输的。
在一个典型的RPC的使用场景中,包含了服务发现、负载、容错、网络传输、序列化等组件,其中RPC协议用来指明程序如何进行序列化编码和网络传输。
一个RPC核心功能主要有5个部分,客户端、客户端 Stub、网络传输模块、服务端 Stub、服务端等
核心 RPC 框架的重要组成:
- 客户端(Client):服务调用方。
- 客户端存根(Client Stub):存放服务端地址信息