Что такое издательство Возвращает весной AMQP - PullRequest
0 голосов
/ 22 мая 2018

Я пробовал свои силы на Spring AMQP.И у меня есть пара вопросов:

Я хотел бы знать, что возвращает Publisher и чем он отличается от Publisher Confirm.Насколько я понимаю, у нас есть ответный звонок издателя, который проверяет статус подтверждения.Сейчас я посмотрел документацию на Spring AMQP и Rabbit MQ.на самом деле я не нашел и не понял по этому поводу.

А также, почему, если сообщение пытаются отправить в несуществующую очередь, я не получаю никакого подтверждения (ack / nack) и я не получаю никаких ошибок.Есть ли способ установить TimeTimeouts для неподтверждений?

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Краткий ответ по ссылке https://www.rabbitmq.com/confirms.html:

"Для сообщений, которые не могут быть отправлены, брокер выдаст подтверждение после того, как обмен подтвердит, что сообщение не направлено в какую-либо очередь (возвращает пустой список).очередей). Если сообщение также публикуется как обязательное, basic.return отправляется клиенту до basic.ack. "

В Spring AMQP, если для параметра 'spring.rabbitmq.publisherReturns' установлено значение true, этобудет означать, что сообщения будут 'обязательными' (если вы не установили обязательное значение false) из-за следующего кода:

    private boolean determineMandatoryFlag() {
        Boolean mandatory = this.properties.getTemplate().getMandatory();
        return (mandatory != null ? mandatory : this.properties.isPublisherReturns());
    }
0 голосов
/ 22 мая 2018

Предлагаю вам прочитать эту статью.Существует хорошее описание всех возможных сценариев подтверждений, включая возврат для неотправленных сообщений, таких как ваша несуществующая очередь.

С точки зрения Spring AMQP вы должны иметь в виду: https://docs.spring.io/spring-amqp/docs/2.0.3.RELEASE/reference/html/_reference.html#template-confirms

Для этой функции требуется CachingConnectionFactory, свойство publisherReturns которого установлено в true.

...