C++跨平台(二):grpc和zmq的方案预研
前言
在进行跨平台开发中,跨进程通讯或者服务器通讯是必不可少的一环,在开发中,我们会选择成熟的第三方库来进行开发。
今天就对跨平台的grpc和zmq进行方案预研。
我的需求是:跨进程通讯
gRpc
grpc是什么?
gRPC是Google开源的RPC实现,基于最新的HTTP2.0协议,并支持常见的众多编程语言。gRPC客户端和服务端可以在多种环境中运行和交互,并且可以使用任何gRPC支持的语言来编写,支持跨平台、跨语言调用。
使用的时候客户端调用server端提供的接口就像是调用本地的函数一样。如下图所示就是一个典型的RPC结构图。
protoBuf
protoBuf是Google开源的一套成熟的结构数据序列化机制,gRPC默认使用的数据交换格式就是protoBuf。
- 优点:
(1)序列化后体积比Json和XML都小,适合网络传输。
(2)支持跨平台多语言。
(3)消息格式升级和兼容性还不错。
(4)序列化反序列化速度很快,快于Json的处理速度。 - 缺点:
(1)功能简单,无法用来表示复杂的