1 个发布者,2 个使用者:如果我设置了一个需要确认的队列,第一个使用者没有确认,第二个使用者会收到消息吗?



,因此场景是1个发布者和2个消费者。队列需要消费者的ACK,以便将消息从队列中删除。

第1个消费者从队列接收消息,但没有ACK,因此该消息停留在队列上。

第二消费者从队列中读取时,第二消费者会收到消息吗?或发布者必须等待第一消费者的nack,以便能够将该消息传递给第二消费者?

在收到确认(ACK或NACK(之前,该消息将保留在队列上,但不会交付给另一个竞争的消费者。

仅在发送Requeue = true的NACK时,另一个消费者才会获得它。而且不能保证它将是消费者2。如果消费者1仍在进行,那么也许它将交付给消费者1。这取决于该时期是否已经处理过其他消息。

最新更新