我最近一直在研究 protobuf-net 和 Protocol Buffer ,到目前为止它看起来相当令人印象深刻。我想知道的是事情的服务方面。如果我正确理解了谷歌文档,您可以在 .proto 文件中声明服务。我的问题是
- 此服务支持是否在 protobuf-net 或其他 dotnet protobuf 库中实现?
- 服务支持是否像 Protocol Buffer 一样完全跨语言?
- 根据 .proto 文件中声明的声明在另一端生成客户端有多难?
基本上,我正在考虑使用 protobuf 设置基于 Web 或 tcp 的服务(如果可能的话),以减少处理大量数据时的开销,并且 protobuf 似乎很理想,因为我的客户通常使用 python、java、c++ 和 dotnet 等语言的混合实现。我真的希望他们和我自己都能轻松地将其集成到他们的应用程序中,并且由于我计划在内部使用 protobuf,因此希望在我这边也能轻松集成。
[编辑] 只是一些额外的信息 code.google.com/apis/protocolbuffers/docs/proto.html#services 这就是我正在谈论的服务类型,但我不确定哪些语言真正支持它以及您从 .proto 文件中的声明中真正得到什么。
最佳答案
如果你看Third Party Add Ons页面中您会发现许多单独的 RPC 实现。但是,我不相信 Google 已经发布了 RPC 实现,并且我不确定第三方集合中是否有任何特别“标准化”的实现......您确实需要选择您喜欢的 RPC 机制,并且可能需要做一些工作才能在尚不存在的地方实现它。
(免责声明:我在 Google 工作并拥有 protobuf-csharp-port 项目。但是,我并不是“代表”Google 撰写本文。这只是我个人的观点。)
关于.net - protobuf-net 或 Protocol Buffer 服务,从 c# 到 python 和其他语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8917462/