[英]How to configure Spring Cloud Stream publisher retries?
I am using the RabbitMQ binder.我正在使用 RabbitMQ 活页夹。
Spring Cloud Stream lets developers retry when exceptions happen as consuming messages. Spring Cloud Stream 允许开发人员在消费消息发生异常时重试。
Producers can fail when RabbitMQ connectivity has been lost.当 RabbitMQ 连接丢失时,生产者可能会失败。 How can we configure SCS so that it retries when any error occurs as producing messages?
我们如何配置 SCS 以便在生成消息时发生任何错误时重试? Or is there a way to apply the circuit breaker there?
或者有没有办法在那里应用断路器?
Thanks谢谢
You can use standard spring boot properties ( retry.enabled
etc) - scroll down to rabbitmq - to configure retry on the producer side.您可以使用标准的 spring 引导属性(
retry.enabled
等) - 向下滚动到 rabbitmq - 在生产者端配置重试。 The binder will wire a retry template into the outbound adapter's RabbitTemplate
. 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.
This is the code in the binder...这是活页夹中的代码...
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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.