使用zeromq,发件人发送10封邮件后,发件人崩溃。
方案1: 接收者正在逐个处理消息,但是时间成本会有一些明显的,在这种情况下,它仍会得到10条消息吗?
方案2: 另一种情况是当接收器崩溃后,接收器恢复后,它能否继续接收它在停电期间错过的内容?
方案3: 如果接收器与队列中的未决消息崩溃,另一个接收器开始侦听队列,是否可以获得队列中剩余的消息?
答案 0 :(得分:2)
方案1:接收方正在逐个处理消息 一些明显的时间成本,它仍将获得10条消息 方案
如果发件人收到了所有消息,那么他们将坐在接收队列中。假设您已经为接收器设置了足够高的高水印选项,那么它应该全部处理它们。
方案2:另一种情况是接收器在接收器之后崩溃 已经恢复,它能否继续接收它错过的内容 停电?
假设发件人也没有崩溃:发件人仍然会在该外接队列中为该接收者排队。只要排队的消息数量不超过发送方设置的高水位选项,接收方就会在重新连接时收到其他未决消息。
方案3:如果接收方崩溃了中的待处理消息 队列,另一个接收器开始侦听队列,它可以得到 什么留在队列中?
ZeroMQ为每个对等体保留一个队列。这样队列就会丢失。这假设您使用的是简单的点对点方法。如果你使用的是PUBLISHER-> SUBSCRIBER,那么多个接收者可以共享同一个队列。