ZeroMQ FAQ页面建议使用Google的protobuf作为序列化消息内容的一种方式。
有人看到一个好的用法示例吗?
我还需要得到“序列化消息的最大优点是什么?”的答案。 - 是否我可以没有它并利用更精简的管道。
我非常喜欢 .proto
文件和 protoc
编译器的想法。
另外,似乎另一个可以在 Playground 上使用的好工具是libev
,任何
欢迎评论:)
最佳答案
如果您 100% 确定要通过 ZMQ 进行通信的程序始终能够理解彼此的二进制格式(例如,因为它们总是一起分发,并且无论如何都使用相同的编译器选项进行编译)我认为序列化增加的开销没有任何好处。
一旦无法满足上述条件(例如在不同主机类型上运行的合作伙伴程序、用不同语言编写的程序甚至可以及时独立发展的合作伙伴程序 - 这可能会导致其原始二进制结构不兼容),序列化就变成很可能是必须的。
现在似乎每个人和他们的兄弟都在创建序列化解决方案,这可能表明没有一种适合所有情况的解决方案。 This page包含 27 个(!!)不同序列化系统的序列化时间、反序列化时间和大小的相当全面的基准测试。不要跳过该页面的第一段,它说“警告,基准测试可能会产生误导”。您的申请、您的数据对您来说很重要,但其中提供的数据可以帮助您缩小想要详细研究的选择范围。
关于protocols - ZeroMQ + Protocol Buffer ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7390561/