我有一个发布商应用程序(PUB),它有N个订阅者(SUB)
这些订阅者需要能够在重新启动时崩溃,或者掉线并丢失消息。
我们已经实现了发布者写入的简单事件存储。 我们已经实现了一个CatchupService,它可以查询事件存储并向订阅者发送错过的消息。
我们已在订户中实现了一个PUSH套接字,该套接字发送错过消息的请求。 订户还有一个PULL套接字,用于侦听单独端口上的错过消息。
订阅者将:
这似乎工作得很好但是我们不确定我们是否在这种应用程序中使用正确的套接字类型。这些是正确的还是应该使用不同的模式。
答案 0 :(得分:1)
听起来不错。否则0MQ能够在对等体短时间离线时从消息丢失中恢复。请查看Socket Options,特别是 ZMQ_SNDHWM 选项。
我不知道0MQ恢复机制是如何保证的,所以也许你最好保持你所拥有的,但这是值得注意的。