golang的net / rpc包和gRPC框架有什么区别?

问题描述 投票:7回答:1

gRPC是一个“通用RPC框架”,它使用ProtoBuffer进行序列化和反序列化,而net/rpc软件包似乎可以与encoding/gob“几乎”相同,并且两者都在Google的保护伞下。 那么它们之间的区别是什么?选择其中一个有什么利弊剂量?

go rpc grpc
1个回答
5
投票

好吧,你自己说过了。 gRPC是一个使用RPC进行通信的框架。 RPC不是Protobuf,而是Protobuf可以使用RPC,而gRPC实际上是Protobuf而不是RPC。

您无需使用Protobuf在应用程序中创建RPC服务。如果您正在从小到中等规模的图书馆/应用程序,这是一个好主意。此外,您无需学习Protobuf的语法来创建自己的服务。

但是,Protobuf比REST快得多。与Protobuf语法的学习曲线的缺点进行通信是一种更方便的方式。此外,您可以使用Protobuf以比Go更多的语言生成代码库。因此,如果你在Java中有某种服务,你可以使用Protobuf轻松地在它们之间生成RPC调用,而如果你使用net / rpc包你必须实现它们两次(一次在Go中,一次在Java中)

一般来说,我会使用Protobuf几乎所有。这使您有信心在更大规模或复杂的项目中使用它。

© www.soinside.com 2019 - 2024. All rights reserved.