好吧,你说过自己。 gRPC是一个使用RPC进行通信的框架。 的 RPC不是Protobuf 强> 但反而 的 Protobuf可以使用RPC 强> 和gRPC实际上是RPC上的Protobuf。
您无需使用Protobuf在应用程序中创建RPC服务。如果您正在从小到中等规模的图书馆/应用程序,这是一个好主意。此外,您无需学习Protobuf的语法来创建服务。
但是,Protobuf比例如REST快得多。与Protobuf语法的学习曲线的缺点沟通是一种更方便的方式。此外,您可以使用Protobuf以比Go更多的语言生成代码库。因此,如果你在Java中有某种服务,你可以使用Protobuf轻松地在它们之间生成RPC调用,而如果你使用net / rpc包你必须实现它们两次(一次在Go中,一次在Java中)
一般来说,我会使用Protobuf几乎所有。这使您有信心在更大规模或复杂的项目中使用它。