我正在设计一个能与ZeroMQ对话的服务器应用程序。在不深入细节的情况下,服务器将存储并提供(来自查询请求)(eventid, eventstring)
元组。
我的问题涉及电线协议的设计。我想将我的元组从一端发送到另一端。我看到两个选择:
这两个选项中的任何一个都优于另一个吗?阅读The ZeroMQ Guide,其中chapter on Advanced Request-Reply patterns大量使用多部分邮件信封。这是否意味着作为用户,我应该尝试坚持使用单个消息来启用更高级的消息模式?
答案 0 :(得分:2)
“指南”中有一节讨论序列化:
http://zguide.zeromq.org/page:all#Serializing-Your-Data
你的两个领域的案例是如此微不足道,只要它有效,你就不会使用你所使用的格式。
答案 1 :(得分:1)
我建议您查看Majordomo protocol的有线协议。从该示例中可以看出,结构中的每个“字段”都作为单独的帧发送。这非常有效并得到很好的支持。
您还可以定义字节布局并将数据作为单个帧发送。您将需要处理任何端序问题(如果您在小端和大端的平台上运行代码),但这很容易处理。如果你不知道如何,那么使用像Majordomo这样的框架技术。
使用1帧与多帧之间的性能可以忽略不计。除非你每秒发送千兆比特,否则它不太可能是一个问题。与往常一样,在您“优化”并浪费大量时间之前测量您的具体情况的基准测试&努力为每条消息节省200纳秒。