我已经实现了一个基于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
关闭或崩溃,所以不应丢弃来自任何SUB
的PUB
的消息。
如果你试图绕过这个,最好重新开始重读ZeroMQ设计格言,其中之一就是ZeroWarranty原则。
最好的下一步是访问Pieter HINTJENS的精彩而富有洞察力的书籍,也可以用pdf“Code Connected:Volume 1”获得。
所讨论的原则和设计工作方法都是如此,因此值得花时间和精力阅读整个故事,并了解可能有助于您进一步完善专业SUB
设计的设计原因和技术选项。