Vert.x AMQP 客户端的 DeliveryStates 之间有什么区别

What's the difference among the DeliveryStates for the Vert.x AMQP Client

作为一个AmqpReceiver,对于一个接收到的消息,不同的DeliveryStates有什么区别。

正在运行 ReceiverTest 进行测试,请参阅 https://github.com/vert-x3/vertx-amqp-client/blob/master/src/test/java/io/vertx/amqp/ReceiverTest.java

当运行 testReceptionWithAcceptedMessages, testReceptionWithRejectedMessages 时总是得到相同的结果:删除测试队列中的所有消息。

消息被标记为拒绝或释放时,是否仍然从MQ服务器中删除?我在哪里可以找到更多关于此的文档?

Vert.xAMQP 客户端在使用队列时可以做与 RabbitMQ 客户端相同的事情吗?例如,肯定或否定确认、多重确认和重新排队等。参见 https://www.rabbitmq.com/confirms.html#basics

谢谢。

在这些测试中,客户端正在接受和拒绝来自 ActiveMQ Artemis 代理的消息。代理将在接受消息时丢弃消息,或者在测试配置下拒绝消息时对消息进行 DLQ。您可以根据自己的情况以不同方式配置代理,但为了测试,它不相关。当您通过设置的处置接受、释放、拒绝或修改交付时,您正在与之交谈的经纪人所做的事情将根据您使用的经纪人及其配置而有所不同。

您可以参考 AMQP 1.0 规范的 section 3.3 and section 3.4,了解交付状态如何影响交付的可用、获取或存档的定义。