代码之家  ›  专栏  ›  技术社区  ›  baao

春云溪兔退避设置

  •  2
  • baao  · 技术社区  · 6 年前

    为了这个例子,我需要以下设置

      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中设置的配置道具不正确,还是问题出在哪里?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Gary Russell    6 年前

    春天的重演 ExponentialBackOfPolicy 具有计算间隔的上限,定义为 maxInterval .

    backOffMaxInterval .

    巧合的是,默认值是10秒。

    @Bean 版本。

    Java上的属性名 *Properties

    属性名称的转换,例如。 back-off-max-interval backOffMaxInterval 是一种弹簧靴功能。