我可以使用 XSUB/XPUB zeromq 模式并为每条消息添加一个 timestamp/sequence 数字吗

Can I use an XSUB/XPUB zeromq pattern and add a timestamp/sequence number to each message

我正在使用 zeromq 创建通用动态图设置。我已经有一个 XPUB/XSUB 设置,但我想知道是否有一种 zmq 方法可以将序列 number/timestamp 添加到代理生成的每条消息中,以便拥有唯一排序的事件“磁带”?

Q : "... but am wondering if there is a zmq way of adding ... to each message ...?"

不,没有。 ZeroMQ 的方法是使用零复制和 (几乎) 零延迟来完成此操作。

您想要的用例不存在这种方式。


解决方案?可行:

创建一个转换节点,其中每条消息都会相应地进行转换(添加了 SEQ 编号和时间戳数据 { pre | ap }-pended )。这样的步骤需要一个人实现这样一个节点并处理所有这些步骤,每个事件都有任何例外。

现成的 API 记录的 zmq_proxy() 根本没有也不能也不应该涵盖这些特定要求,因为它是为其他目的而设计的(并且使用零拷贝来最有效的传递 + ev. 有效的 MITM-logger 服务模式)。