C++ zeromq在节点之间创建消息缓冲区

C++ zeromq在节点之间创建消息缓冲区,c++,zeromq,data-distribution-service,C++,Zeromq,Data Distribution Service,我需要一个无代理模式,用于在节点之间读取和写入消息,而无需从队列中删除任何消息,直到某些监控系统接受删除消息 在zmq中,如果一个发布服务器节点死亡,网络上排队的消息也消失了,我可以使用zeromq?执行此操作吗?如何在网络中保存此队列 ( 我想发送一条带有发布者和订阅者已读消息的消息,但在Qos监视器将其从阵列中删除之前,不要将其从队列中删除。如果发布者死亡,则不应删除使用它创建的消息队列 我可以用zmq中的当前模式实现这些功能吗? )你必须在你的应用程序中建立这种冗余/可靠性,而不是依赖ZM

我需要一个无代理模式,用于在节点之间读取和写入消息,而无需从队列中删除任何消息,直到某些监控系统接受删除消息

在zmq中,如果一个发布服务器节点死亡,网络上排队的消息也消失了,我可以使用zeromq?执行此操作吗?如何在网络中保存此队列

( 我想发送一条带有发布者和订阅者已读消息的消息,但在Qos监视器将其从阵列中删除之前,不要将其从队列中删除。如果发布者死亡,则不应删除使用它创建的消息队列

我可以用zmq中的当前模式实现这些功能吗?
)

你必须在你的应用程序中建立这种冗余/可靠性,而不是依赖ZMQ来提供

这意味着您必须跟踪发布服务器节点上的所有消息,然后订阅服务器节点应该能够反馈它已接收到消息,从而允许发布服务器节点删除其缓存。这很可能意味着多个套接字,除非您真的想尝试让XPUB/XSUB以这种方式进行通信,但这似乎不是理想的选择


如果您需要通信库中更直接支持的内容,那么ZMQ不会为您削减它。。。但我怀疑您是否会找到其他任何可以这样做的方法。

既然您已经包含了标签,您是否也对使用DDS的解决方案感兴趣?您在问题中没有提到它。@ReinierTorenbeek我不知道,我认为使用像zmq这样的MQ并实现这样的模式(我在上面描述过)到目前为止还不属于DDS体系结构。如果我理解dds有误,请纠正我?感谢您对opensplice的了解,以及它如何提供这样的功能,不能说我对opensplice了解很多,在几分钟的搜索中,它听起来像是DDS协议的开源实现。因此,它不能直接与ZMQ相比。。。将opensplice视为一个完整的通信应用程序,其中的ZMQ是一个用于构建完整通信应用程序的工具集。我还没有深入研究DDS规范,看您是否可以用ZMQ完全实现它,但您应该能够大致了解它。但是你可能会选择使用opensplice,如果它满足你的需要。我不想在我的项目中使用opensplice,你是对的。我想使用ZMQ和DDS创建我自己的通信应用程序,你看到我为你发送的链接了吗?在第13页之后,您认为我可以使用zyre opnamp等zmq库实现这样的全局数据域。。或者,正如我所说,我还没有深入研究DDS规范,以了解您可以实现什么,但正如我从一开始就说过的,如果您想要达到这种数据可靠性水平,您必须自己编写,因为它不是由ZMQ提供的。