【问题标题】:How to configure Spring Cloud Stream publisher retries?如何配置 Spring Cloud Stream 发布者重试?
【发布时间】:2020-01-28 16:53:07
【问题描述】:

我正在使用 RabbitMQ 绑定器。

Spring Cloud Stream 允许开发人员在消费消息发生异常时重试。

当 RabbitMQ 连接丢失时,生产者可能会失败。我们如何配置 SCS 以便在生成消息时发生任何错误时重试?或者有没有办法在那里应用断路器?

谢谢

【问题讨论】:

    标签: spring spring-boot rabbitmq spring-cloud spring-cloud-stream


    【解决方案1】:

    您可以使用标准的spring boot properties (retry.enabled 等) - 向下滚动到 rabbitmq - 在生产者端配置重试。 binder 会将重试模板连接到出站适配器的 RabbitTemplate

    spring.rabbitmq.template.retry.enabled=false # Whether publishing retries are enabled.
    spring.rabbitmq.template.retry.initial-interval=1000ms # Duration between the first and second attempt to deliver a message.
    spring.rabbitmq.template.retry.max-attempts=3 # Maximum number of attempts to deliver a message.
    spring.rabbitmq.template.retry.max-interval=10000ms # Maximum duration between attempts.
    spring.rabbitmq.template.retry.multiplier=1 # Multiplier to apply to the previous retry interval.
    

    这是活页夹中的代码...

            if (rabbitProperties != null && rabbitProperties.getTemplate().getRetry().isEnabled()) {
                Retry retry = rabbitProperties.getTemplate().getRetry();
                RetryPolicy retryPolicy = new SimpleRetryPolicy(retry.getMaxAttempts());
                ExponentialBackOffPolicy backOff = new ExponentialBackOffPolicy();
                backOff.setInitialInterval(retry.getInitialInterval().toMillis());
                backOff.setMultiplier(retry.getMultiplier());
                backOff.setMaxInterval(retry.getMaxInterval().toMillis());
                RetryTemplate retryTemplate = new RetryTemplate();
                retryTemplate.setRetryPolicy(retryPolicy);
                retryTemplate.setBackOffPolicy(backOff);
                rabbitTemplate.setRetryTemplate(retryTemplate);
            }
    

    【讨论】:

      猜你喜欢
      • 2018-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-03
      • 2016-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多