Spring AMQP中的发布者返回是什么?

5
我一直在尝试使用Spring AMQP。 我有几个问题:
我想知道Publisher返回是什么,以及它与Publisher Confirm有何不同。 据我所知,我们有一个Publisher Confirm Callback来检查acks的状态。 现在我查看了Spring AMQP和Rabbit MQ中的文档,没有找到或理解太多关于此的内容。
还有为什么如果将消息尝试发送到不存在的队列,则无法获得任何确认(ack / nack)也没有任何错误。 是否有一种方式可以为未确认的消息设置超时?
2个回答

2
来自链接https://www.rabbitmq.com/confirms.html的简短回答如下:
“对于无法路由的消息,经纪人会在交换机确认消息不会路由到任何队列时(返回空队列列表)发出确认。如果消息也被发布为强制性的,则在basic.ack之前将basic.return发送给客户端。”
在Spring AMQP中,如果将“spring.rabbitmq.publisherReturns”设置为true,则这意味着消息将是“强制性”的(除非您将强制性设置为false),因为以下代码:
    private boolean determineMandatoryFlag() {
        Boolean mandatory = this.properties.getTemplate().getMandatory();
        return (mandatory != null ? mandatory : this.properties.isPublisherReturns());
    }

0

同时,查看规范的“2.2.1 协议命令(类和方法)”部分也有助于您理解“basic.consume”和“basic.get”的含义。https://www.rabbitmq.com/resources/specs/amqp0-9-1.pdf - Constantino Cronemberger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接