为了这个例子,我需要以下设置
spring:
cloud:
stream:
rabbit:
bindings:
foo:
consumer:
auto-bind-dlq: true
instanceCount: 2
instanceIndex: 0
bindings:
foo:
destination: foo
group: fooGroup
consumer:
maxAttempts: 4
backOffInitialInterval: 10000
backOffMultiplier: 10.0
fooChannel:
destination: foo
spring.cloud.stream.bindings.foo.consumer
第二部分,我设置了4次最大尝试,初始后退间隔为10,乘数为10。
here
和
here
)不过,钥匙是用骆驼壳做的
backOffInitialInterval
back-off-initial-interval
我也是。我有点困惑,所有不同的方式,关键是案件,但这是另一个故事。
我试过各种写作方法
backOffMultiplier
,但它没有应用,消息每10秒发送一次。
@Bean
并手动配置RetryTemplate
@Bean
RetryTemplate retryTemplate() {
RetryTemplate r = new RetryTemplate();
ExponentialBackOffPolicy exponentialBackOffPolicy = new ExponentialBackOffPolicy();
exponentialBackOffPolicy.setInitialInterval(10000);
exponentialBackOffPolicy.setMultiplier(10.0);
exponentialBackOffPolicy.setMaxInterval(100000);
r.setBackOffPolicy(exponentialBackOffPolicy);
SimpleRetryPolicy simpleRetryPolicy = new SimpleRetryPolicy();
simpleRetryPolicy.setMaxAttempts(4);
r.setRetryPolicy(simpleRetryPolicy);
return r;
}
使用bean,所有的东西都能正确应用,所有的设置都能得到尊重。
是我在application.yml中设置的配置道具不正确,还是问题出在哪里?