gRPC是一个“通用RPC框架”,它使用ProtoBuffer进行序列化和反序列化,而net/rpc软件包似乎可以与encoding/gob“几乎”做同样的事情,并且都在Google的保护下。
那么他们之间有什么区别?选择其中之一有什么优点和缺点?Golang的net/rpc包和gRPC框架有什么区别?
4
A
回答
0
好吧,你已经说过了。 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几乎所有。这使您有信心在更大规模或复杂的项目中使用它。
相关问题
- 1. gRPC和Beta gRPC类有什么区别?
- 2. gRPC和WCF有什么区别?
- 3. Flux和Redux框架有什么区别?
- 4. CoreBluetooth和ExternalAccessory框架有什么区别?
- 5. Backoffice和Cockpit框架有什么区别?
- 6. 平台和框架有什么区别?
- 7. .NET微型框架和.NET精简框架有什么区别?
- 8. golang包中redis.v4和redis.v5有什么区别
- 9. 框架和工具包之间的主要区别是什么?
- 10. 动态和静态生成的grpc代码有什么区别?
- 11. os.Mkdir与syscall.Mkdir,Golang有什么区别?
- 12. moqui框架vs其他框架有什么区别
- 13. UIImageView的框架和界限有什么区别?
- 14. 凤凰框架中的`def`和`defp`有什么区别?
- 15. Yii框架中的homeUrl和baseUrl有什么区别?
- 16. .Net框架的版本v2.0.50727.3053和v2.0.50727.3074之间有什么区别?
- 17. Play框架中的Silhouette和Deadbolt 2有什么区别
- 18. Docker包和docker-compose有什么区别?
- 19. 库和包有什么区别?
- 20. Java包:`oracle.AQ`和`oracle.jdbc.aq`有什么区别?
- 21. JAR和包之间有什么区别?
- 22. “dart:html”和“dart:dom”包有什么区别?
- 23. dll和nuget包有什么区别?
- 24. 春季板凳和数据访问框架有什么区别?
- 25. CSS UI框架和jQuery UI有什么区别
- 26. ORM和持久性框架有什么区别?
- 27. JavaScript框架和库之间有什么区别?
- 28. 框架/图书馆和游戏引擎 - 有什么区别
- 29. b \ w homekit和外部附件框架有什么区别?
- 30. LINQ to Entities和实体框架有什么区别?
我不认为“Protobuf使用RPC”。 Protobuf可能被用来实现RPC。它也可能用于其他消息或序列化目的。 – asynchronos
你是对的,我的意思是在这个特定的背景下“Protobuf在gRPC中使用RPC”。我已经编辑它以使其更加清晰,以防万一 – MaC
当您想要说“一系列HTTP请求”时,请不要说“REST”。 ReST是一种方法,它本身对HTTP没有任何影响。 – kostix