当前位置:   article > 正文

springboot rabbitmq属性配置spring.rabbitmq.publisher-confirm和spring.rabbitmq.publisher-confirm-type详解_弃用的配置属性 'spring.rabbitmq.publisher-confirms

弃用的配置属性 'spring.rabbitmq.publisher-confirms

springboot.rabbitmq.publisher-confirm 新版本已被弃用,现在使用 spring.rabbitmq.publisher-confirm-type = correlated 实现相同效果

在springboot2.2.0.RELEASE版本之前是amqp正式支持的属性,用来配置消息发送到交换器之后是否触发回调方法,在2.2.0及之后该属性过期使用spring.rabbitmq.publisher-confirm-type属性配置代替,用来配置更多的确认类型;

1.spring.rabbitmq.publisher-confirm发布确认属性配置

如果该属性为true,则会触发以下方法:

  1. /**
  2. * 设置生产者消息publish-confirm回调函数
  3. */
  4. rabbitTemplate.setConfirmCallback((correlationData, ack, cause) -> {
  5. if(!ack){
  6. LoggerUtil.error(RabbitConfig.class, StringUtils.join("publishConfirm消息发送到交换器被退回,Id:", correlationData.getId(), ";退回原因是:", cause));
  7. } else {
  8. LoggerUtil.info(RabbitConfig.class, "发送消息到交换器成功,MessageId:"+correlationData.getId());
  9. }
  10. });

2.spring.rabbitmq.publisher-confirm-type新版发布确认属性有三种确认类型

  1. /**
  2. * The type of publisher confirms to use.
  3. */
  4. public enum ConfirmType {
  5. /**
  6. * Use {@code RabbitTemplate#waitForConfirms()} (or {@code waitForConfirmsOrDie()}
  7. * within scoped operations.
  8. */
  9. SIMPLE,
  10. /**
  11. * Use with {@code CorrelationData} to correlate confirmations with sent
  12. * messsages.
  13. */
  14. CORRELATED,
  15. /**
  16. * Publisher confirms are disabled (default).
  17. */
  18. NONE
  19. }

 

  • NONE值是禁用发布确认模式,是默认值
  • CORRELATED值是发布消息成功到交换器后会触发回调方法,如1示例
  • SIMPLE值经测试有两种效果,其一效果和CORRELATED值一样会触发回调方法,其二在发布消息成功后使用rabbitTemplate调用waitForConfirms或waitForConfirmsOrDie方法等待broker节点返回发送结果,根据返回结果来判定下一步的逻辑,要注意的点是waitForConfirmsOrDie方法如果返回false则会关闭channel,则接下来无法发送消息到broker;

GitHub地址:https://github.com/mingyang66/spring-parent/tree/master/doc/rabbitmq

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/798545
推荐阅读
相关标签
  

闽ICP备14008679号