我已经实现了一个基于ZeroMQ的基础架构,使用PUB
- c ++中的代理,将来自多个SUB
- s的消息传递到多个XPUB/XSUB
- 。
多个PUB
(s) - > XSUB/XPUB
代理 - > multipe SUB
(s)
如果我启动所有SUB
(s)然后启动PUB
(s),那么它按照设计工作,但如果我先启动PUB
(s)然后我启动SUB
(s),然后删除PUB
(s)之间的所有消息。
有解决方法吗?
由于在应用程序中可能会发生SUB
关闭或崩溃,因此不应删除来自任何PUB
的{{1}}消息。
答案 0 :(得分:0)
如果你试图规避这一点,最好先重新阅读ZeroMQ设计准则,其中一个是ZeroWarranty原则。
最好的下一步是访问Pieter HINTJENS的精彩且富有洞察力的书,也可以pdf格式提供," 代码连接:第1卷&#34 ;
讨论了原则和设计工作方法,因此值得花时间和精力阅读整个故事,并了解可能有助于您进一步完成专业distributed-system设计的设计原因和技术选项。