RabbitMQ发布者如何知道代理是否接收到消息

RabbitMQ发布者如何知道代理是否接收到消息,rabbitmq,broker,Rabbitmq,Broker,我正在java中使用RabbitMQ。我想发布多条消息,知道代理是否收到它。请注意,我不想知道消息是否已被确认。我发现的例子似乎依赖于客户端发送basicAck或Nack ch.setConfirmListener(new ConfirmListener() { public void handleAck(long seqNo, boolean multiple) { if (multiple) { unconfirmedSet.headSet(s

我正在java中使用RabbitMQ。我想发布多条消息,知道代理是否收到它。请注意,我不想知道消息是否已被确认。我发现的例子似乎依赖于客户端发送basicAck或Nack

ch.setConfirmListener(new ConfirmListener() {
    public void handleAck(long seqNo, boolean multiple) {
        if (multiple) {
            unconfirmedSet.headSet(seqNo+1).clear();
        } else {
            unconfirmedSet.remove(seqNo);
        }
    }
    public void handleNack(long seqNo, boolean multiple) {
        // handle the lost messages somehow
    }
});
我只想知道,在基本发布之后,该消息是否作为发布者在代理中收到。

您正在寻找

您引用的ACK用于消费者,因为RabbitMQ要求在将消息从其队列中删除之前对其进行ACK

请注意,接收已发布消息的确认并不意味着该消息已存储在队列中:该消息可以是“不可终止的”,在这种情况下,确认会立即发送到发布者,但消息会被丢弃。见:

如果您还想跟踪无法发送的消息,则必须使用