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

时间:2016-08-19 08:09:20

标签: go rpc grpc

Scheduler Pools是一个“常规RPC框架”,它使用gRPC来序列化和反序列化,而ProtoBuffer包看起来与“{3}}”几乎相同“两者都在谷歌的保护伞下 那么它们之间的区别是什么?选择其中一个有什么利弊剂量?

1 个答案:

答案 0 :(得分: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。这使您有信心在更大规模或复杂的项目中使用它。

相关问题