标签: zeromq
我可以使用另一条消息的部分初始化新邮件而无需复制吗?修改消息以删除前几帧也是有效的。
我正在使用ROUTER-REQ模式进行负载平衡实现。 REQ端向ROUTER发送消息,该消息将身份和分隔符帧添加到消息中。在我的应用程序使用第一帧将工作者的身份推送到空闲列表后,它需要将消息的最后一帧转发到PUB套接字。那些最终帧可能非常大,并且在提取出第一个身份帧之后,我不再需要接收到的消息的其余部分,只是将其转发。这似乎是零拷贝的好地方;我只需要丢弃由ROUTER插入的前两帧。
答案 0 :(得分:1)
我没有尝试,但我认为你可以,我会尝试用
使用zmq_msg_copy,根据man page。
zmq_msg_copy
实现可以选择不物理复制邮件 内容,而不是共享src和dest之间的底层缓冲区。
我不知道为什么手册页使用“可以选择”,查看code我认为它一直在做。
这里,当我谈论消息时,我的意思是“消息部分”。因此,当您创建多部分消息时,只需将必要部分(框架)零复制
您使用哪种绑定?