在 spring-cloud-stream 项目的文档中,我看到的唯一重试机制是单一的退避策略。
我想要实现的行为是三种不同的重试策略,以防在使用消息时引发异常:
- 不可恢复的异常 - 不会尝试再次处理此类消息。
- 可恢复的异常 - 这种消息在被丢弃之前会被重试多次。
- 瞬态异常 - 这种消息将被永远重试。
有没有办法为每种异常定义不同的重试策略?我知道在 spring-kafka 中有提供 RetryTemplate 并实现上述行为的能力。
我认为也许使用 DLQ 机制会有一种方法来实现这种行为。
编辑:我使用 Kafka 作为消息传递中间件。