spring:
  rabbitmq:
    host: 
    port:
    virtual-host: /shopping
    username:
    password:
    listener:
      simple:
        prefetch: 1
        acknowledge-mode: auto
        retry:
          initial-interval: 1000ms
          enabled: true
          multiplier: 1
          max-attempts: 3
          stateless: true

对于发送着配置是在 template 下的;消费者是配置了 

listener  。

RabbitMQ 消息确认机制处理: 发送者消息确认-CSDN博客 参考。

业务中包含了 事务 stateless: true 改为 false 。

多次重试失败后,可以设置一个错误处理的交换机

例如: error.exchange 

定义好,并绑定

@Configuration
public class ErrorConfig {

    private final String routingKey = "errordirect";
    private final String queue = "errordirect.queue";
    private final String exchange = "errordirect.exchange";


    @Bean
    public DirectExchange errorExchange() {
        return new DirectExchange(exchange);
    }

    @Bean
    public Queue errorQueue() {
        return new Queue(queue);
    }

    @Bean
    public Binding errorBinding(DirectExchange errorExchange, Queue errorQueue) {

        return BindingBuilder
                    .bind(errorQueue)
                    .to(errorExchange)
                    .with(routingKey);
    }

    public MessageRecoverer errorMessageRecoverer(RabbitTemplate rabbitTemplate) {
        return new RepublishMessageRecoverer(rabbitTemplate,exchange,routingKey);
    }
}

定义 

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐