zl程序教程

您现在的位置是:首页 >  其他

当前栏目

RPC通信原理与项目技术选型

2023-09-27 14:29:25 时间

RPC通信原理

RPC(Remote Procedure Call Protocol):远程过程调用协议。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

技术选型

消息的序列化和反序列化使用的是 protobuf。

protobuf(protocol buffer)是google 的一种数据交换的格式,它独立于平台语言。
google 提供了protobuf多种语言的实现:java、c#、c++、go 和 python,每一种实现都包含了相应语言的编译器以及库文件。
由于它是一种二进制的格式,比使用 xml(20倍) 、json(10倍)进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。

和Json的区别:

  1. protobuf是二进制存储,xml和Json是文本存储的。
  2. protobuf不需要存储额外的信息,只存储有效数据,Json存储的是 key-value。

网络部分,包括寻找rpc服务主机,发起rpc调用请求和响应rpc调用结果,使用muduo网络
库和zookeeper服务配置中心
(专门做服务发现)。