当订阅服务器连接到 ZeroMQ 发布/订阅模型中的发布服务器时发布快照数据



我有一个简单的 ZeroMQPUB/SUB架构,用于将数据从发布者流式传输到订阅者。连接订阅服务器后,发布者开始流式传输数据,但我想对其进行修改,以便发布者首先发布数据的最新快照,然后开始流式传输。

我怎样才能做到这一点?

我怎样才能做到这一点
(这是:"...流式传输数据,但我想对其进行修改,以便发布者首先发布数据的最新快照,然后开始流式传输。

溶液:

实例化一对PUB-s,第一个叫aSnapshotPUBLISHER,第二个叫aStreamingPUBLISHER。对前者使用XPUB-archetype 可能有助于轻松集成一些用于用户群管理的附加逻辑(第 N 个功能,但有点 O/T ATM(。

使用aSnapshotPUBLISHER.setsockopt( ZMQ_CONFLATE, 1 )配置前者,其他设置可能侧重于减少延迟并确保所有需要的资源都可用于通过aStreamingPUBLISHER流畅流式传输,同时还为任何新手提供最新的快照aSnapshotPUBLISHER

SUB端代理只需遵循这种方法,设置了一对工作(.bind()/.connect()(链接(到PUB-s或一对XPUB+PUB(之一,并确认链接已启动并平稳运行,停止从aSnapshotPUBLISHER获取快照并保持消费,但(现在使用BaseID/TimeStamp/FrameMarker或类似对齐的(流数据从aStreamingPUBLISHER

已知的ZMQ_CONFLATE模式原样限制是不支持多帧消息有效负载,一旦低延迟经验法则是将任何数据打包/压缩到大小合适的 BLOB-s 中,而不是通过网络移动任何类型的"装饰"但效率低下的数据表示格式,就不需要考虑麻烦。

最新更新