如果PUB首先启动并连接到XPUB / XSUB代理,则消息将被丢弃,直到SUB未连接为止

问题描述 投票:0回答:1

我已经实现了一个基于ZeroMQ的基础设施,使用c ++中的PUB-proxy将来自多个SUB-s的消息传递给多个XPUB/XSUB-s。

多个qazxsw poi(s) - > qazxsw poi proxy - > multiple qazxsw poi(s)

如果我启动所有PUB然后启动XSUB/XPUB然后它按照设计工作,但如果我先启动SUB(s)然后我启动SUB(s),那么所有的消息来自PUB(s)在这段时间之间被取消了。

有没有解决这个问题?

因为在应用程序中可能会发生PUB关闭或崩溃,所以不应丢弃来自任何SUBPUB的消息。

c++ message-queue zeromq
1个回答
0
投票

这是一个众所周知的功能。 ZeroMQ设计有意识地以这种方式工作。

如果你试图绕过这个,最好重新开始重读ZeroMQ设计格言,其中之一就是ZeroWarranty原则。

最好的下一步是访问Pieter HINTJENS的精彩而富有洞察力的书籍,也可以用pdf“Code Connected:Volume 1”获得。

所讨论的原则和设计工作方法都是如此,因此值得花时间和精力阅读整个故事,并了解可能有助于您进一步完善专业SUB设计的设计原因和技术选项。

© www.soinside.com 2019 - 2024. All rights reserved.