我最近一直在研究protobuf-net和协议缓冲区,到目前为止,它似乎给人留下了深刻的印象。我想知道的是服务方面的问题。如果我理解谷歌文档,你可以在.proto文件中声明服务。我的问题是
- 这项服务支持是在protobuf-net还是在另一个dotnet protobuf-lib中实现的
- 服务支持是否完全像协议缓冲区那样跨语言
- 根据.proto文件中声明的声明在另一端生成客户端有多难
基本上,我正在考虑使用protobuf(如果可能的话)来设置基于so web或tcp的服务,以减少处理大量事务时的开销。protobuf似乎是理想的,因为我的客户端通常使用python、java、c++和dotnet等混合语言来实现。我真的很想让他们和我自己都能轻松地集成到他们的应用程序中,因为我计划在内部使用protobuf,所以希望在我这边可以轻松地集成。
[编辑]只是一些额外的信息代码。google.com/apis/protocolbuffers/docs/proto.html#服务这就是我所说的服务类型,但我不确定什么langs真正支持它,也不确定你从.proto文件中的声明中得到了什么。
如果您查看第三方加载项页面,您会发现许多单独的RPC实现。然而,我不相信谷歌已经发布了RPC实现,我也不确定第三方集合中是否有任何特别"标准化"的实现。。。你真的需要选择一个你喜欢的RPC机制,并可能在任何不存在的地方做一些工作来实现它。
(免责声明:我为谷歌工作,拥有protobuf-csharp端口项目。然而,我不是"代表"谷歌写这篇文章的。这只是我的个人意见。)