Spring Cloud Stream 禁用重试

Spring Cloud Stream disable retry

我正在使用 Spring 云流和 spring 云函数以及反应式方法。我的活页夹是 RabbitMQ。 根据定义,maxAttempts 属性 是可以处理消息的次数(这就是我的解释) 来自:https://cloud.spring.io/spring-cloud-static/spring-cloud-stream/3.0.6.RELEASE/reference/html/spring-cloud-stream.html#_consumer_properties

maxAttempts: If processing fails, the number of attempts to process the message (including the first). Set to 1 to disable retry. Default: 3.

问题是我使用此(默认)配置的应用程序总是处理消息 4 次。现在我想禁用重试,所以我设置了 max-attempts=1 并且消息总是被处理 2 次。 我已经尝试设置 spring.cloud.stream.rabbit.bindings.input.consumer.requeue-rejected=false 虽然是默认值。

关于如何让我的消息只处理一次的任何线索?

谢谢。

Hoxton.SR1 很旧

我明白为什么用这些版本重试了;我将您的示例更新为最新版本,现在只提供一次...

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.3.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>retry-demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>retry-demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>11</java.version>
        <spring-cloud.version>Hoxton.SR8</spring-cloud.version>
    </properties>

不知道是哪个版本修复的