美文网首页技术生活
RabbitMQ配置之mandatory

RabbitMQ配置之mandatory

作者: 星空1221 | 来源:发表于2019-11-15 14:05 被阅读0次

    在SpringBoot的RabbitMQ配置中,有如下一项:
    spring.rabbitmq.template.mandatory = true

    官方注释:

    Enable mandatory messages. If a mandatory message cannot be routed to a queue by the server, it will return an unroutable message with a Return method.

    大意为:开启强制消息投递(mandatory为设置为true),但消息未被路由至任何一个queue,则回退一条消息到RabbitTemplate.ReturnCallback中的returnedMessage方法:

    public interface ReturnCallback {
        /**
        * Returned message callback.
        * @param message the returned message.
        * @param replyCode the reply code.
        * @param replyText the reply text.
        * @param exchange the exchange.
        * @param routingKey the routing key.
        */
        void returnedMessage(Message message, int replyCode, String replyText,
                     String exchange, String routingKey);
    }
    

    浏览RabbitAutoConfiguration发现如下代码:

    private boolean determineMandatoryFlag() {
        Boolean mandatory = this.properties.getTemplate().getMandatory();
        return (mandatory != null ? mandatory : this.properties.isPublisherReturns());
    }
    

    如果设置了mandatory参数,则直接取值;如若mandatory参数为空,则取之于否起开了消息回退

    相关文章

      网友评论

        本文标题:RabbitMQ配置之mandatory

        本文链接:https://www.haomeiwen.com/subject/mrxsictx.html